エリック・エヴァンスのドメイン駆動設計を読んでいる ( 7 )

値オブジェクトを設計する

 

  • あるモデル属性がその属性しか対象にしないなら、それは値オブジェクトとするべき
  • 一過性ものは確実に値オブジェクト
  • 人は同一性があるが、その人の名前は無い。
    なので、人はエンティティ。名前は値オブジェクト。

サービス

エンティティにも値オブジェクトにもあてはまらないもの。

アクション(ふるまい、手続き)など。

 

優れたサービスとは

  • 操作がドメインに紐づいていて、エンティティや値オブジェクトの一部じゃない
  • ドメインモデルの他の要素の観点からインターフェースが定義されている
  • 操作に状態が無い

DDDにおいて、重要なプロセスや変換処理がエンティティや値オブジェクトの自然な責務じゃない時、それはサービスとして独立される事。

サービスには状態を持たせないこと