4

贫血模型是没有...

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

DTO 是没有业务逻辑的贫血模型吗?而且,再一次,一个没有业务逻辑的小对象?

4

1 回答 1

4

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

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

您不能说 DTO 是否贫血,因为 DTO 是不可变的,并且仅在架构的变异/写入端(例如 CQRS 中的命令端)才有意义,但如果我们稍微强加一下这个术语,是的,a DTO 是贫血的,根据定义没有任何行为(既不读也不写):“ DTO 除了存储和检索自己的数据外,没有任何行为”。

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

为了稍微扩展答案,Aggregate roots并且嵌套Entities了写入端的行为(各种验证)。

于 2017-05-29T06:56:17.120 回答