Customer2 つの集約ルートとOrder「共有」エンティティで構成されるモデルのシナリオを考えてみましょうAddress。
また、 には次のサブクラスがあるAddressことに注意してください: 、および。abstractPhysicalAddressPostOfficeBoxAddressPrivateBagAddress
Customerは、ある種のアドレス帳に整理された多数のアドレスを持つことができます。注文時に、顧客はAddressアドレス帳から配送先住所として使用する を選択します。
最初は 2 つのエンティティ間でアドレスを共有することを考えていましたが、それぞれの不変条件の管理に問題が生じるため、オプトアウトしました。
もう 1 つの選択肢として、 の 2 つの階層を作成しAddress、それぞれを顧客の住所または配送先住所として使用する方法があります。繰り返しコードがたくさんあるので、これも正しくないようです。
この状況を適切にモデル化するにはどうすればよいでしょうか?