加载中...

贫血领域模型(Anemic Domain Model)指领域对象仅包含数据字段和 getter/setter,不含业务行为,所有逻辑都写在外部服务类中的建模方式。Martin Fowler 于 2003 年撰文将其命名并视为反模式,因为它披着领域模型的外壳,实质是过程式设计。
典型形态是"Service + 纯数据 DO/DTO":对象状态可被任意 set,不变式(业务约束)散落在各个服务方法里,违背面向对象把数据与行为封装在一起的初衷。
批评者认为它丢失了封装与内聚;支持者认为在以 CRUD 为主、逻辑简单的系统中,贫血模型配合事务脚本更直白高效。Java 企业开发中它事实上非常普遍。
领域驱动设计提倡充血模型:把校验、状态流转等行为放回实体与值对象,服务层只做编排。

登录 后参与讨论
暂无讨论,来发表第一条评论吧