asp.net - DDD中有没有关于共享值对象的概念

标签 asp.net domain-driven-design aggregateroot ddd-service

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

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

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

最佳答案

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

关于asp.net - DDD中有没有关于共享值对象的概念,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24547438/

相关文章:

.net - 如何禁用客户端上的 TextBox 单击 CheckBox

domain-driven-design - DDD - 虚构的聚合根

domain-driven-design - 聚合根中覆盖的实体如何保存在 DDD 中?

javascript - 使用 Javascript 从弹出窗口中删除地址栏

asp.net - 向 ASP.NET AJAX 中的 UpdatePanel 动态添加控件

c# - 增加 Asp.net 工具提示超时

tdd - 聚合根是否应该在域驱动设计中实现接口(interface)

java - 将聚合根作为属性?

c# - DTO 中的枚举类型命名约定

c# - 跨聚合根搜索 child