知识卡片
POJO与领域模型是两个不同维度的概念
内容
人们常混淆领域模型与POJO,以为贫血模型对象就是POJO,殊不知二者处于迥然不同的维度:POJO关注类的定义是否纯粹(不依赖框架),领域模型关注对领域逻辑的表达与封装。即使是只有getter/setter的贫血对象,只要依赖了任何外部框架(如标记javax.persistence.Entity),严格意义上也不属于POJO。作者以Dubbo最佳实践为例:其”服务参数与返回值建议使用POJO”的描述其实不正确,因为Dubbo输入/返回值需支持序列化、不符合POJO定义,应描述为”支持序列化的Java Bean”。发散:设计良好的领域模型需满足两点——仅封装领域逻辑尽量不掺技术实现、按角色构造型分配职责各司其职,二者靠角色构造型与服务驱动设计达成。
参考来源
- 位置:《解构领域驱动设计》第19章 19.1.1(源文件:_epub-src/OEBPS/032.xhtml)
- 结论依据:原文指出POJO关注纯粹性、领域模型关注领域逻辑封装,属两个维度,并以Dubbo描述纠错。
- 原始内容:POJO关注类的定义是否纯粹,领域模型关注对领域逻辑的表达与封装。