知道值对象表示域的描述,该描述可以是不同有界上下文中许多实体的一部分。例如 FullName 值对象,这个 VO 可以作为 Customer 实体的成员存在于“图书获取”上下文中,也可以作为 BookAuthor 实体的成员存在于“图书管理”上下文中。知道值对象可以在领域的不同部分使用,值对象应该在哪里实现?他们是否应该有一个特殊的层/模块,每个有界上下文都会在需要时使用?
最佳答案
每个有界上下文都应该实现自己的值对象(当然还有实体),即使这会导致代码重复。
根据经验 应避免跨上下文边界重用代码 .这条规则可能有异常(exception),但使用具有域相关内容的通用库将很快干扰受影响域模型的独立演化。
注:丹·伯格·约翰逊 (Dan Bergh Johnsson) 发表了一篇精彩而有值(value)的演讲,名为 The Power of Value - Power Use of Value Objects in Domain Driven Design 2011 年在 Øredev。
关于architecture - 将值对象放在领域层的什么位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23996378/