DDD中有没有关于共享值对象的概念

Bin*_*ose 6 asp.net domain-driven-design aggregateroot ddd-service

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

如果我有两个称为“注册”和“准入”的聚合根则这两个聚合都会消耗一个称为“地址”的值对象。尽管我的通用语言不同(入学地址和注册地址),但该地址对象的模型是相同的(我的意思是它具有共同的属性)。所以我决定将这个值对象从这两个聚合根移动到我的上下文中的共同位置(说 SharedValuess)。我想知道这种做法是否良好,或者是否有任何成熟的方法可以处理此类情况。

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

ete*_*ity 4

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