贫血模型是没有......
的模型“贫血域模型是使用软件域模型,其中域对象包含很少或没有业务逻辑(验证,计算,业务规则等)。”
DTO是否是没有业务逻辑的贫血模型?还有,没有商业逻辑的balie对象?
答案 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
具有写入方面的行为(各种验证)。