2

ドメイン駆動設計 (DDD) では、ValueObject には次の定義があります。

値オブジェクトは、何らかの特性または属性を説明するオブジェクトですが、アイデンティティの概念はありません。

「Client」エンティティと「Order」エンティティがあるとします。注文はクライアントに関連しているため、通常は Order クラスに ClientId フィールドを追加します。これは、Client エンティティ自体を参照できない可能性があるためです。ここまでは順調ですね...

ここで、クライアントの名前、クライアントのステータスだけでなく、 ClientId も含む値オブジェクト ClientInfo を作成してもよろしいでしょうか? ClientInfo は、clientName、clientStatus、および clientId のゲッターのみで不変になります。

これで、エンティティ識別子を持つ値オブジェクトができました。これは値オブジェクトの定義に反していますか、それともここで安全ですか?

4

1 に答える 1

6

エンティティ識別子への参照を持つ値オブジェクトは問題ありません。同じ情報を持つ 2 つの ClientInfo オブジェクトがある場合、それらは完全に交換可能です。これらは、文字列や整数と同様の値です。

于 2012-10-09T12:10:47.197 に答える