Domain Driven Design -ソフトウェアで表現されたモデル

モデルと実装は強い結びつきが必要だ。この辺からかなり議論が難しくなってきている。まずは全体観を改めて抑えたい。

モデルのパターン

エンティティ、値オブジェクト、サービスの三種類がある。

エンティティ

主として同一性によって定義されるオブジェクトはエンティティと呼ばれる。エンティティはモデリングと設計に際して特別な考慮が必要だ。

ソフトウェアにおけるエンティティは通常の意味とは異なる。

英語の一般名詞として、組織や団体など物質的な実体に限らず実存する概念のことを指す。法律上の概念としては「法人」(legal entity: 法的実体)と訳される場合がある。

人や都市、銀行取引などがソフトウェアにおけるそれに当たる。

値オブジェクト

たとえば色とか、文字列、数など。エンティティの属性になり得るもの。

サービス

サービスとは、モデルにおいて独立したインターフェースとして提供される操作で、状態を保持しない。