知识卡片
POJO的本质是不依赖框架而非贫血
内容
POJO(Plain Old Java Object)本来含义是一个常规的、不受任何框架平台约束的Java对象:除遵守Java语法,不继承预设类、不实现预设接口、不含预指定注解,因而除依赖JDK外不依赖任何框架平台。Martin Fowler等人提出它,正是看到”用POJO封装业务逻辑的益处”,以对抗当时与EJB强耦合的Entity Bean。因此POJO并非只有getter/setter的贫血对象,其主要特征不在于定义了什么成员,而在于它作为常规对象不依赖语言之外的任何框架——本质上它是一种设计模式,目的既非数据传输也非持久化。发散:把”是不是POJO”与”是不是贫血”分开判断,能避免大量概念误用;.NET对应概念为POCO。
参考来源
- 位置:《解构领域驱动设计》第19章 19.1.1(源文件:_epub-src/OEBPS/032.xhtml)
- 结论依据:原文澄清POJO主要特征在于不依赖框架,可封装业务逻辑,本质是设计模式。
- 原始内容:它的主要特征不在于它究竟定义了什么样的成员,而在于它作为一个常规的Java对象,并不依赖于除语言之外的任何框架……本质上,它是一种设计模式。