文章目录
POJO:Plain Ordinary Java Object 无规则简单java对象
一个中间对象,可以转化为PO、DTO、VO。
- POJO持久化之后==〉PO
- POJO传输过程中==〉DTO
- POJO用作表示层==〉VO
一般只有属性字段,无参构造以及get和set方法,也是指那些没有从任何类继承、也没有实现任何接口,更没有被其它框架侵入的java对象。
因此它特别灵活可扩展,可以实现让一个模型贯穿多个层,简单来说可以理解成不包含业务逻辑的单纯用来存储数据的 java类
PO 和VO都应该属于它。
PO:Persistent Object 持久对象
为POJO增加了持久化的方法(Insert、Update、Delete……)之后,POJO就变成了PO。
- 有时也被称为Data对象,对应数据库中的entity,可以简单认为一个PO对应数据库中的一条记录。
- 在持久化框架中与 Insert / Delete / Update 操作密切相关。
- PO中不应该包含任何对数据库的操作。
在 O/R 映射的时候出现的概念,如果没有 O/R 映射,没有这个概念存在了。通常对应数据模型 ( 数据库 ), 本身还有部分业务逻辑的处理。可以看成是与数据库中的表相映射的 java 对象。最简单的 PO 就是对应数据库中某个表中的一条记录,多个记录可以用 PO 的集合。 PO 中应该不包含任何对数据库的操作。
VO:Value Object值对象 / View Object表现层对象
为POJO增加了数据绑定功能之后,POJO就变成了View Object,即UI Model。
- 主要对应页面显示(web页面/swt、swing界面)的数据对象。
- 可以和表对应,也可以不,这根据业务的需要。
视图对象,用于展示层,它的作用是把某个指定页面(或组件)的所有数据封装起来。
例如:在struts中,用ActionForm做VO,需要做一个转换,因为PO是面向对象的,而ActionForm是和view对应的,要将几个PO要显示的属性合成一个ActionForm,可以使用BeanUtils的copy方法。
BO:Business Object 业务对象
封装业务逻辑为一个对象(可以包括多个PO,通常需要将BO转化成PO,才能进行数据的持久化,反之ÿ