1
考虑一下由两个聚合体根Customer
和Order
以及“共享”实体Address
组成的模型。需要共享实体的聚合体
还要注意的是Address
是abstract
具有以下子类:PhysicalAddress
,PostOfficeBoxAddress
和PrivateBagAddress
。
A Customer
可以将许多地址组织成某种地址簿。 订购时,顾客将从他们的地址簿中选择一个Address
作为送货地址。
我最初的想法是在这两个实体之间分享一个地址,但后来我选择了它,因为它会导致管理各自的不变量时出现问题。
我可以去的另一个选择是创建Address
的两个层次结构,每个层次都是作为客户地址或送货地址。由于有很多重复的代码,这再次显得不正确。
我该如何正确模拟这种情况?
感谢您的回答,但看起来我无法使用我的ORM框架JPA实现此功能。问题在于@Embeddable(value对象)无法使用继承。我将不得不寻找另一种解决方案。 –