知识卡片
贫血模型代价
内容
贫血模型把对象降成字段容器,把行为放到服务里,看似简单,却让业务规则散落在流程脚本中。充血模型让数据和行为共同维护不变性,更适合复杂领域演进。
参考来源
- 位置:《复杂软件设计之道》第4章《实体和值对象》"4.1 失血/贫血模型"一节(源文件:_chapter_text/ch04.txt)
- 结论依据:原文明确"DDD领域模型=数据结构+操作方法,数据和行为结合在一起才是一个完整的真正业务对象……称为'充血模型',而没有行为方法的纯数据结构的类称为'失血模型'……也称为'贫血模型'",并总结"服务被开发人员用作真正的银弹,但最终成为得到贫血模型的最大原因"。
- 原始内容:DDD领域模型=数据结构+操作方法,数据和行为结合在一起才是一个完整的真正业务对象(领域对象)……这样的对象或类称为"充血模型",而没有行为方法的纯数据结构的类称为"失血模型"……这种类实际还是数据结构,也称为"贫血模型"……这又验证了一句话:服务被开发人员用作真正的银弹,但最终成为得到贫血模型的最大原因。