sen*_*rio 4 domain-driven-design dto value-objects anemic-domain-model
贫血模型是没有...的模型
“贫乏域模型是使用软件域模型,其中域对象包含很少或不包含业务逻辑(验证、计算、业务规则等)。”
DTO 是一种缺乏业务逻辑的贫血模型吗?再说一次,一个没有业务逻辑的 balie 对象?
首先,让我们将行为一分为二:读取行为和写入行为,这样我们就可以使用相同的语言。
DTO 是一种缺乏业务逻辑的贫血模型吗?
你不能说 DTO 是否贫血,因为 DTO 是不可变的,并且贫血仅在架构的变异/写入端(例如 CQRS 中的命令端)才有意义,但如果我们稍微强迫这个术语是的,那么DTO 是贫血的,根据定义没有任何行为(既不读也不写):“ DTO 除了存储和检索自己的数据之外没有任何行为”。
AValue object有行为(读取行为)。例如,它实现了测试两个值对象是否相等的行为。
为了稍微扩展答案,Aggregate roots嵌套Entities具有写入端的行为(各种验证)。