質問にはタイトルではあまり明確ではないかもしれませんが、私に説明させてください:エンティティは何度もエンティティとして使用されていますか?
私のモデルでは、私には住所がある人がいます。ただし、多くの人が同じ住所を共有することができます。
私は自分のモデルを定義していたので、私はPersonがEntityだと仮定しましたが、Addressの単一のプロパティを変更すると、それはもはや同じAddressではないのでValue Objectになります。
複数のPersonがアドレスを共有できるので、データベース実装に直接ジャンプし、その人にaddress_xxxxフィールドがあると仮定すると、データベースに重複が多すぎるでしょうか?アドレステーブルに関連するaddress_idフィールドを持っている方が良いのでしょうか?その場合、Addressはエンティティの権利ですか?
永続性モデル(別名データベース)とドメインモデルを混同しないでください。 Addressがドメイン内の値オブジェクトの場合は、そのように扱います。永続性は単なる実装の詳細です。 – Cerad
@cerad確かに、遅かれ早かれ私はそれに対処しなければならないでしょう。私はアドレスをエンティティにすることについてますます考え始めています。ドメインのある時点では、固有のアドレスのリストを提示する必要があるからです。それはエンティティをアドレスにしますか? – Lucio
人の外にあるアドレスを処理する必要がある場合は、定義上、ドメインエンティティになります。アプリケーションが実際にそれらを必要としない限り、ドメイン駆動型設計手法を適用しようとすることに注意してください。ほとんどの場合、あなたは素早く自分自身を結びつけることができません。 – Cerad