1
考慮一下由兩個聚合體根Customer
和Order
以及「共享」實體Address
組成的模型。需要共享實體的聚合體
還要注意的是Address
是abstract
具有以下子類:PhysicalAddress
,PostOfficeBoxAddress
和PrivateBagAddress
。
A Customer
可以將許多地址組織成某種地址簿。 訂購時,顧客將從他們的地址簿中選擇一個Address
作爲送貨地址。
我最初的想法是在這兩個實體之間分享一個地址,但後來我選擇了它,因爲它會導致管理各自的不變量時出現問題。
我可以去的另一個選擇是創建Address
的兩個層次結構,每個層次都是作爲客戶地址或送貨地址。由於有很多重複的代碼,這再次顯得不正確。
我該如何正確模擬這種情況?
感謝您的回答,但看起來我無法使用我的ORM框架JPA實現此功能。問題在於@Embeddable(value對象)無法使用繼承。我將不得不尋找另一種解決方案。 –