web-dev-qa-db-ja.com

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

ボブおじさんによるクリーンコードを読んでいます。私は英語を母国語としないので、次の文を理解できませんでした。

クラスとオブジェクトには、CustomerWikiPageAccountAddressParserのような名詞または名詞句の名前が必要です。クラスの名前にManagerProcessorData、またはInfoのような単語を使用しないでください。クラス名は動詞であってはなりません。

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

14
mmdemirbas

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

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

  • いくつかの言葉は避けるべきです。 Managerは、可能性があることを示します god classInfoおよびDataは、ダミーのデータコンテナーを示す場合があります。このような言葉は、問題の空間のモデリングが不十分であることを示している可能性があります。

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

21
Thomas Owens

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

入門書は通常、これをDogという名前のクラスのような最も単純で最も明白な用語に要約し、メソッドBarkおよびBiteを使用します。実世界のクラスでは、区別は少し微妙ですが、それでも存在します。ボブおじさんが言っている点は、しかし、(managerは名詞であるが、それはマネージャーが何をしているかに多くの注意を払っているということです-それは漠然としています何がどのように管理されているかを正確に説明する言葉。

7
p.s.w.g