Domain driven design ddd-覆盖每个属性的值对象

Domain driven design ddd-覆盖每个属性的值对象,domain-driven-design,Domain Driven Design,实现与第三方系统的集成,该系统从网站导出产品和导入订单 有一些ddd的工作已经在设计中完成,并继续它,我想 订单和产品上的每一处财产都应该包含价值对象吗 这意味着大约100个类别涵盖了所有可能的属性,这些属性似乎过多: 产品SKU 产品名称 产品描述 产品价格 等等 订单和产品上的每一处财产都应该包含价值对象吗 他们已经是了。真正的问题是,你是要让覆盖内容隐式化,还是显式化 这意味着大约100个类别涵盖了所有可能的属性,这些属性似乎过多: 哦,它有可能变得比这更纠结ProductPrice包

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

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

订单和产品上的每一处财产都应该包含价值对象吗

这意味着大约100个类别涵盖了所有可能的属性,这些属性似乎过多:

  • 产品SKU
  • 产品名称
  • 产品描述
  • 产品价格
  • 等等
订单和产品上的每一处财产都应该包含价值对象吗

他们已经是了。真正的问题是,你是要让覆盖内容隐式化,还是显式化

这意味着大约100个类别涵盖了所有可能的属性,这些属性似乎过多:

哦,它有可能变得比这更纠结<例如,code>ProductPrice包含了
Money
的概念(它与
ComputedTax
RoundedTax
有共同之处),其中包括
金额
和表示单位的
CurrencyCode

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

另见:

订单和产品上的每一处财产是否都应包含 价值对象

在我所知道的任何语言中,基元值都已经是值对象:不可变且没有标识(如字符串、数字等)

如果您指的是“我是否应该创建一个新类来包含该数据+行为”,那么我说的是YAGNI。如果你找不到一个好的理由去做(你需要强有力的输入,你需要显式的隐式等等),那么现在就不要做。等你需要的时候再说