domain-driven-design - 领域驱动设计; ValueObject 可以包含不变量或规范吗?

标签 domain-driven-design specifications invariants

我开始玩领域驱动设计,对ValueObject有疑问:

它们可以包含不变量或其他规范吗?

考虑一个不可变的 ValueObject :

ValueObject (

  prop integer: Int
  prop string: String

  // Value and copy constructor

  // Observers for integer and string

  // Equality methods on integer and string value

)

我可以添加一些不变量,例如 integer > 0 & < 42。或者它们是否必须是没有任何逻辑的简单传输?

我希望他们可以,但需要确认。

最佳答案

值对象 (VO) 封装了一个值及其业务需求。这就是它的目的:对恰好是一个简单(并不总是单一)值的业务概念(及其约束)进行建模。

VO 不是数据传输对象 (DTO),正是因为它定义了一个业务概念,该概念仅在包含的有界上下文中有效,而 DTO 旨在跨越边界。

关于domain-driven-design - 领域驱动设计; ValueObject 可以包含不变量或规范吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31983245/

相关文章:

orm - 子实体类应该有自己的存储库吗?

specifications - 确定缺失需求的基本技术?

css - 如何解释 CSS 文档符号?

java - 如何找到循环不变的java

java - Java中的类不变量是什么?

c# - 在 RavenDb 中引用值对象父实体对象

c# - 将域模型业务实体传递给 UI 层问题

java - 由于在 REST 中使用 HATEOAS 而导致循环依赖

c++ - 访问 protected 方法的方法指针?