【发布时间】:2016-02-24 00:27:26
【问题描述】:
当应用程序想要基于已经存在的 Aggregate 创建新的 Aggregate 时,我们可以将现有 Aggregate 中的所有内容(除了内部实体的 ID)复制到新的 Aggregate 中。但是如果某些内部对象引用了聚合边界之外的对象,我们就不能同时复制被引用的对象。
a) 我知道 Aggregate 应该管好自己的事,不要干扰其他 Aggregate 的生命周期,但如果我们也复制存在于 Aggregate 边界之外的对象,究竟会出现什么问题?
【问题讨论】:
-
你能提供一个更具体的例子吗?
-
@eulerfx:不管我们拥有什么样的领域模型,这不是一般规则吗(至少我是这样理解 DDD:Tackling Complexity 的作者的...... - 他从未明确说过它,但我认为他暗示它)?
-
我问的原因是从您的域中收集一些可能会影响答案的内容。 DDD 中并未明确涵盖复制聚合的内容,因此您的情况可能需要注意。
-
您当然可以将引用复制到外部对象,因为这些只是引用,不会影响聚合的事务完整性。然而有趣的是复制的原因。
-
它可能会影响复制对象的完整性,具体取决于该对象是什么。这就是为什么复制的性质很重要 - 这取决于复制的内容和原因。