区分 PO、BO、VO、DTO、POJO、DAO、Entity、javaBean
Opened this issue · 0 comments
PO: 持久对象(persistent object)
就是ORM框架中的Entity,po的每个属性基本上都对应数据库表里面的某个字段,完全是一个符合java bean规范的纯Java对象,没有增加别的属性和方法,持久对象是有insert数据库创建,有数据库delete删除的。
VO: 值对象(value Object)
通常用于业务层之间的数据传递,和PO一样也是仅仅包含数据而已。但应是抽象出的业务对象,可以和表对应,也可以不,根据业务的需要。
BO: 业务对象层的缩写(Business Object)
封装业务逻辑的java对象,通过调用DAO方法,结合PO,VO进行操作。
DTO: 数据传输对象(Data Transfer Object)
是一种设计模式之间传输数据的软件应用系统,数据传输目标往往是数据访问对象从数据库中检索数据,数据传输对象或数据访问对象之间的差异是一个以不具有任何行为除了存储和检索的数据(访问和存取器),简单来说,当我们需要一个对象10个字段内容,但这个对象总共有20个字段,我们不需要把整个PO对象全部字段传输到客户端,而已可以用DTO重新封装,传递到客户端。此时,如果这个对象用来对应界面的展现就叫VO。
POJO: (Plain Ordinary Java Object) 简单的Java对象
实际就是普通JavaBeans,是为了避免和EJB混淆所创建的简称,通指没有使用Entity Beans的普通java对象,可以把POJO作为支持业务逻辑的协助类。
POJO可以理解为简单的实体类,它的作用是方便程序员使用数据库中的数据表。
- 一个POJO持久化以后就是PO
- 直接接用它传递,传递过程中就是DTO
- 直接用来对应表示层就是VO
DAO: (Data Access Object) 数据访问接口
它可以把POJO持久化为PO,用PO组装出来VO、DTO,DAO模式时标准的J2EE设计模式之一,开发人员使用这个模式把底层的数据访问操作和上层的商务逻辑分开,一个典型的DAO实现有以下几个组件:
- 一个DAO工程类
- 一个DAO接口
- 一个实现DAO接口的具体类
- 数据传递对象(也可以叫值对象)
具体的DAO类包含了从特定的数据源访问数据的逻辑,一般一个DAO类和一张表对应,每个操作要和事务关联。
JavaBean: 一种可重用组件
即"一次性编写,如何地方执行,如何地方重用",满足三个条件
- 类必须是具体的以及公共的
- 具有无参构造器
- 提供一致性设计模式的公共方法将内部域暴露重用属性