EntityとValueオブジェクトを意識する

Entityは外部から参照可能な識別子を持っていて識別子によって一意に取得できる。識別子が同じであれば同じオブジェクトとして扱えるものである。Valueオブジェクトは識別子をもたない単なる値オブジェクトである。汎用的なデータやエンティティの内部的なデータとして利用される。
Entityの代表的なものが商品IDを識別子にもつ商品、社員Noを識別子にもつ社員などである。Valueオブジェクトの代表的な利用例は国際通貨や社員エンティティの住所などがある。

Valueオブジェクトは識別子をもためないためEntityに比べ取り扱い易い。たとえば、Entityの双方向参照は非常に取り扱いが大変だが、Valueオブジェクトであればそれほど気にしないくともよい。広範囲に利用可能な汎用的なクラス化しやすいのもメリットの1つである。商品の価格履歴も、Entityの内部データとしてのValueオブジェクトである。

分析モデルを作成する際、このEntityとValueオブジェクトの違いを意識することで、モデル全体が取り扱いやすくなる

なお、ERではこのValueオブジェクトがエンティティの中に埋もれてしまうしまうので注意が必要である。