4

我需要知道如何在 DDD 中使用共享值对象,例如?

如果我有两个名为Registration 和 Admission 的聚合根,这两个聚合都消耗一个名为 Address 的值对象。即使我的通用语言不同(录取地址和注册地址),此地址对象的模型也是相同的(我的意思是它具有共同的属性)。所以我决定将这个值对象从这两个聚合根移动到我的上下文中的公共位置(Say SharedValuess)。我想知道这种做法很好,或者有什么成熟的方法可以处理这种情况。

注意:这篇文章可能违反了堆栈溢出的规则,因为它的答案是基于意见的,但我没有找到任何其他活跃的论坛来问这个问题。

4

2 回答 2

3

有一种称为“共享内核”的模式。它有助于避免代码重复,通常用于有界上下文集成。但我建议尽可能少地保留它,以避免从有界上下文中泄漏逻辑。我认为在您的情况下,除非您需要在每个有界上下文的地址模型中存在一些差异,否则保持共享将是一个正确的决定。

于 2014-07-03T07:48:53.743 回答
-2

您遇到这样的困境可能表明模型 (UL) 有问题。我会考虑在两个聚合根之一中维护地址,并从另一个聚合根中“按身份”引用这个聚合根。

领域驱动设计中的聚合

于 2014-08-24T03:40:25.327 回答