DTO贫血模型/贫血值对象?

时间:2017-05-29 05:22:33

标签: domain-driven-design dto value-objects anemic-domain-model

贫血模型是没有......

的模型

“贫血域模型是使用软件域模型,其中域对象包含很少或没有业务逻辑(验证,计算,业务规则等)。”

DTO是否是没有业务逻辑的贫血模型?还有,没有商业逻辑的balie对象?

1 个答案:

答案 0 :(得分:3)

首先让我们将行为分为两部分:读取行为和写行为,所以我们说同一种语言。

  

DTO是否是没有业务逻辑的贫血模型?

你不能说DTO是贫血的,因为DTO是不可变的,只有在架构的变异/写入方面(例如CQRS的命令方面)才有意义,但是如果我们强迫这个术语是的,根据定义,DTO是贫血的,没有任何行为(既不读也不写):“DTO does not have any behavior except for storage and retrieval of its own data”。

Value object有行为(读取行为)。例如,它实现了测试两个值对象是否相等的行为。

为了扩展答案,Aggregate roots和嵌套Entities具有写入方面的行为(各种验证)。