当应用程序想要基于现有的Aggregate创建新的Aggregate时,我们可以将现有Aggregate中的所有内容(内部实体的ID除外)复制到新的Aggregate中。但是如果某个内部对象引用了Aggregate边界之外的对象,我们就不允许复制引用的对象。
a)我知道Aggregates应该关注自己的业务而不是干扰其他Aggregate的生命周期,但如果我们还复制了Aggregate边界之外的对象,究竟会出现什么问题呢?
答案 0 :(得分:2)
假设您有一个汇总Order
,其中包含OrderLine
个对象的集合,并且您希望根据现有的订单创建新订单,您只需复制订单及其关联订单行。即使订单行可能引用了Product
,您也不会复制产品,因为它不属于汇总产品。
理想情况下,订单行甚至不应该引用产品实例,而只是保留产品ID。
正如eulerfx所提到的,复制背后的原因可能会提供更多见解:)