我需要知道如何在 DDD 中使用共享值对象,例如?
如果我有两个聚合根,称为 注册和录取,这两个聚合都消耗一个名为 Address 的值对象。即使我的通用语言不同(录取地址和注册地址),这个地址对象的模型是相同的(我的意思是它具有共同的属性)。所以我决定将此值对象从这两个聚合根移动到我的上下文中的公共(public)位置(Say SharedValuess)。我想知道这种做法很好,或者有什么成熟的方法可以处理这种情况。
注意:这篇文章可能违反了堆栈溢出的规则,因为它的答案是基于意见的,但我没有找到任何其他活跃的论坛来问这个问题。
最佳答案
有一种称为“共享内核”的模式。它有助于避免代码重复,通常用于有界上下文集成。但我建议尽可能少地保留它,以避免从有界上下文中泄漏逻辑。
我认为在您的情况下,保持共享将是一个正确的决定,除非您需要在每个有界上下文的地址模型中存在一些差异。
关于asp.net - DDD中有没有关于共享值对象的概念,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24547438/