贫血模型是没有...
“贫血域模型是使用软件域模型,其中域对象包含很少或不包含业务逻辑(验证、计算、业务规则等)。”
DTO 是没有业务逻辑的贫血模型吗?而且,再一次,一个没有业务逻辑的小对象?
贫血模型是没有...
“贫血域模型是使用软件域模型,其中域对象包含很少或不包含业务逻辑(验证、计算、业务规则等)。”
DTO 是没有业务逻辑的贫血模型吗?而且,再一次,一个没有业务逻辑的小对象?
首先让我们把行为分成两部分:读行为和写行为,所以我们说的是同一种语言。
DTO 是没有业务逻辑的贫血模型吗?
您不能说 DTO 是否贫血,因为 DTO 是不可变的,并且仅在架构的变异/写入端(例如 CQRS 中的命令端)才有意义,但如果我们稍微强加一下这个术语,是的,a DTO 是贫血的,根据定义没有任何行为(既不读也不写):“ DTO 除了存储和检索自己的数据外,没有任何行为”。
AValue object
有行为(读取行为)。例如,它实现了测试两个值对象是否相等的行为。
为了稍微扩展答案,Aggregate roots
并且嵌套Entities
了写入端的行为(各种验证)。