2013-09-25 49 views

回答

0

您可以将它们视为价值对象,但您不必以DDD方式考虑所有事情。

根据Martin Fowler的定义:

当我们使用领域模型中,我们使用它,因为它包含了复杂的 域逻辑。将此域逻辑分类为:

验证:检查输入是否有意义并且对象是否正确 适合进一步操作。 后果:发起一些行动,这将改变世界的状态
推导:搞清楚一些 信息基础上的信息,我们已经有

的ValueObject s为擅长验证并推导。

另一方面,语言表通常用于解决国际化问题(ui/query conern)。一般来说,这里没有领域逻辑。这种特征很容易在简单的CRUD风格中实现,因此更好。在DDD中考虑它们会添加很多约束,例如只有聚合可以由存储库返回,或者只能通过聚合来修改本地实体。例如,用户编辑产品,添加英文说明和德语说明。人们可以将产品建模为一个聚合和描述作为价值对象,但是这并没有增加太多价值,并且令人讨厌(现在一个产品不能由一个英文编辑器和一个deutsch编辑器同时修改聚合)进行编辑。

但是如果产品聚合中存在一些真正的域验证和派生会怎样?如库存和定价。这就是有限背景下的场景。可以同时在DDD中建模库存/定价有界上下文和在CURD中建模的产品描述上下文。

相关问题