ボブおじさんは「名詞句名」とはどういう意味ですか?


14

ボブおじさんのきれいなコードを読んでいます。私は英語を母国語としないため、次の声明を理解できませんでした。

クラスとオブジェクトのような名詞や名詞句の名前を持つ必要があり CustomerWikiPageAccount、とAddressParser。避け言葉が好き ManagerProcessorData、またはInfoクラスの名前インチ クラス名は動詞であってはなりません。

私が知っているように、のいずれもManagerProcessorData、およびInfo動詞である、そうではありませんか?彼が強調したい実際のポイントは何ですか?


ボブおじさんは、オブジェクトとしてのリソースの美徳を称賛するのにRESTfulな考え方を採用しているかもしれません。
-rwong

回答:


21

3つのポイントは別々です。

  • クラス名は名詞または名詞句にする必要があります。これは、クラスの名前が動詞の主題になるようなものでなければならないことを意味します。オブジェクト指向設計の場合、メソッドは、クラスが表現するものに対して行われる動詞になります。

  • いくつかの言葉は避けるべきです。Manager可能な神クラスを示します。Infoそして、Dataダミーデータコンテナを示すかもしれません。このような言葉は、問題空間の不十分なモデリングを示している可能性があります。

  • 動詞は決してクラス名であってはなりません。最初のポイント-クラスは物事をモデル化し、メソッドはアクションをモデル化します。


1
このような言葉は、問題空間の不十分なモデリングを示している可能性があります。-まあ、選択された名前とは無関係に、問題空間が貧弱にモデル化されているかどうかのいずれかだと思うでしょう。良い名前は貧弱なデザインを助けません。そして、良いデザインは貧弱な名前によってほんのわずかに傷つけられます。
インゴ

クラスのプロパティは一般名詞になり、クラスのメソッドは、一般動詞になりながら-あなたが実際にあなたのクラスを構築する方法と、それは外の世界と対話する方法を考えるとき、あなたはステップ下にこれを取ることができる
PeteH

プロジェクトに「Manager」、「Info」、または「Data」を呼び出すことを検討するクラスがある場合、おそらくそのようなクラスが12個あるため、これらの名前は使用しないことになります。ThisManagerとThatManagerとAnotherMangerなどがあります。
gnasher729

彼は動詞をクラス名に含めるべきではないと言いますが、私は「意味のあるコンテキストの追加」を読み直し、29ページの彼の例では、GuessStatisticMessageという名前を付けています。今、私はルールについて混乱しています。なぜなら、彼の推測を名詞ではなく動詞と解釈しているからです。dictionary.com/browse/guess?s=t
デビングリーソンランバート

2
@DevinGleasonLambertしかし、それは推測ではありません。これは推測統計メッセージです。メッセージは名詞です。推測統計は、それが存在するメッセージのタイプを説明するだけです-推測統計に関するメッセージ。
トーマスオーエンズ

7

彼は物事(名詞)と行動(動詞)を区別しようとしています。従来のオブジェクト指向設計では、クラスを物と考え、そのメソッドをそれらの物が実行できるアクションと考えています。するために管理しながら、の世話をするか調整することです管理者が管理人やものです。

入門書は通常、これを、BarkメソッドとBiteメソッドを備えたDogという名前のクラスのように、可能な限り単純でわかりやすい用語に要約します。現実世界のクラスでは、区別はしばしばもう少し微妙ですが、それはまだあります。ボブおじさんが言っているポイントは、マネージャーは名詞ですが、マネージャーが何をするかではなく、マネージャーが何をするかに注目していることだと思います-それが何であるかを正確に説明するのはあまりにも曖昧です管理されているか、どのように。


5
残念ながら、この種の考え方は間違った設計につながる可能性があります。主な例の1つは、銀行口座の古典的な導入例です。ほとんどすべてのオブジェクト指向教科書でAccountは、オブジェクトでbalanceあり、フィールドでtransferあり、メソッドです。しかし、正しい設計は次のとおりTransferです。オブジェクトでaccountあり、フィールドでbalanceあり、メソッドです。それが、銀行システムが実際にどのよう実装され、銀行がコンピューターの前に実際に機能したかです。
ヨルグWミットタグ

@JörgWMittag:注意書きは回答として投稿する価値があります。これらは一般的なガイドラインであり、特定のまれなケースでは分解が悪化する可能性があります。
smci
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.