ddd - 用于覆盖每个属性的值对象

时间:2017-04-01 23:03:17

标签: domain-driven-design

实施与第三方系统的集成,该系统从网站导出产品和导入订单。

在设计中已经完成了一些ddd工作,并且我想继续它。

订单和产品上的每一个属性是否都应包含值对象?

这意味着大约100个课程可以涵盖所有可能属性过多的类别:

  • ProductSku
  • 产品名称
  • 产品描述
  • ProductPrice
  • 等...

2 个答案:

答案 0 :(得分:1)

  

订单和产品上的每一个属性是否都应包含值对象?

他们已经是。真正的问题是你是否要隐瞒这种内容,或者将其明确化。

  

这意味着大约100个课程可以涵盖所有可能属性过多的类别:

哦,它有可能变得更加纠结。例如,ProductPrice包含Money的概念(与ComputedTaxRoundedTax有共同点),其中包含Amount和{{{ 1}}表示单位。)

您可能需要认真考虑选择一种语言,在这种语言中,创建数百种不同的价值观并不会过分。

另见:

答案 1 :(得分:1)

  

订单和产品上的每一个财产都应该被覆盖   一个价值对象?

在我所知的任何语言中,原始值已经是一个值对象:不可变且没有标识(即字符串,数字等)。

如果您指的是"我是否应该创建一个新类来包含该数据+行为"然后我说YAGNI。如果你找不到合理的理由(你需要强大的打字,你可以隐式明确等),那么现在就不要这样做。等到你需要它。