5

値オブジェクトと集計の使用方法を理解するのに少し苦労しています。私の状況を例を挙げて説明します。

というエンティティがありますRelationship。ID や StartDate などの値を保持します。と の 2 つの値オブジェクトBoyfriendがありますGirlfriend。ボーイフレンド オブジェクトとガールフレンド オブジェクトの両方にアドレスがあるため、別の値オブジェクトを作成しましたAddress。データベース内では、これらはすべて 1 つのテーブルにまとめられています (つまり、ID、StartDate、BoyfriendAddress、GirlfirendState など)。

ボーイフレンドとガールフレンドを作成するにはどうすればよいですか? 私の定義の理解から、それらはルート エンティティを持たないため、集約としての資格はありません。値オブジェクトは、その中に別の値オブジェクトを持つことができますか?

4

1 に答える 1

6

はい、他の値オブジェクト内に値オブジェクトを含めることができます。これの最も単純な例は、金額と別の VO である通貨を含むクラス Money だと思います。

また、Boyfriend と Girlfriend にグローバルな一意の ID がない場合、それらは集約ルートではなく、リレーションシップ内にローカルの一意の ID がない場合は、エンティティでもありません。

正直に言うと、まず第一に、あなたのアプリは政治的に正しくありません :) - GLBT関係があるため。そして 2 つ目は、人 (名前はわかっていると思います) がエンティティでも集約ルートでもないというのは奇妙に感じます。

于 2012-11-07T15:09:32.957 に答える