2017-04-01 25 views
0

实现与从网站导出产品和导入订单的第三方系统的集成。ddd - 覆盖每个属性的值对象

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

订单和产品上的每个属性是否应该覆盖一个值对象?

这意味着大约100类涵盖似乎过高所有可能的属性:

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

回答

1

订单和产品上的每个属性是否应该覆盖一个值对象?

他们已经是。真正的问题是,你是否会留下隐含的内容,或者说明确。

这意味着大约100类涵盖似乎过高所有可能的属性:

哦,有什么比这更比较纠结的潜力。例如,ProductPrice包含Money(其与ComputedTaxRoundedTax相同)的概念,其包括表示单位的AmountCurrencyCode

您可能想要认真考虑选择一种语言,在该语言中创建数百个不同的值类别不会感觉过度。

参见:

1

应的顺序和产品上的每一个属性来覆盖 值对象?

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

如果你指的是“我应该创建一个新的类来包含数据+行为”,那么我说YAGNI。如果你找不到一个很好的理由去做(你需要强大的打字,你需要隐式显式等),那么现在就不要这样做。等到你会需要它。