POJO(Plain Ordinary Java Object)
简单的Java对象
通指没有使用Entity Beans的普通java对象,可以把POJO作为支持业务逻辑的协助类。
POJO实质上可理解为简单的实体类,顾名思义,POJO类的作用是方便程序员使用数据库中的数据表,可以很方便地将POJO类当做对象来进行使用,当然也可以方便地调用其get、set方法。
一个POJO在持久化后就是PO,若直接用它传递,在传递过程中就是DTO,若直接用来对应表示层就是VO。
JavaBean
一种可重用组件,即“一次性编写,任何地方执行,任何地方重用”。
主要用途:可以用在功能、处理、值、数据库访问和JSP中任何可以用Java代码创造的对象。
满足三个条件:
- 类必须是具体的和公共的。
- 具有无参构造器。
- 提供一致性设计模式的公共方法将内部域暴露成员属性。
PO(Persistent Object)
持久对象
PO的每个属性基本上都对应数据库表里面的某个字段,是一个完全符合Java Bean规范的纯Java对象,没有增加别的属性和方法。持久对象是由insert数据库而创建,由数据库delete而删除的,持久对象生命周期基本上和数据库密切相关。
VO(Value Object)
值对象
通常用于业务层之间的数据传递,和PO一样,也是仅仅包含数据而已,但VO是抽象出的业务对象,可根据业务的需要选择是否和表对应。
VO(View Object)
表现层对象
主要对应展示界面显示的数据对象,用一个VO对象来封装整个界面展示所需要的对象数据。
BO(Business Object)
业务对象
是封装业务逻辑的JAVA对象,通过调用DAO的方法,结合PO、VO进行业务操作。
例如一个简历,有教育经历、工作经历、社会关系等,可以把教育经历对应一个PO,工作经历对应一个PO,社会关系对应一个PO,建立一个对应简历的BO对象处理简历,每个BO包含这些PO,这样处理业务逻辑时就可以针对BO去处理。
DTO(Data Transfer Object)
数据传输对象
简单来说,当需要一个对象10个字段的内容,但这个对象总共有20个字段,就不需要把整个PO对象的全部字段传输到客户端,可以用DTO重新封装再传递到客户端,若这个对象此时用来对应界面的展现,则叫VO。