PO/POJO/BO/DTO/VO的区别
2011-05-12 10:04
204 查看
PO
:persistent object
持久对象
1.有时也被称为Data
对象,对应数据库中的entity
,可以简单认为一个PO
对应数据库中的一条记录。
2
.在hibernate
持久化框架中与insert/delet
操作密切相关。
3
.PO
中不应该包含任何对数据库的操作。
POJO
:plain ordinary java object
无规则简单java
对象
一个中间对象,可以转化为PO、DTO
、VO
。
1
.POJO
持久化之后==
〉PO
(在运行期,由Hibernate
中的cglib
动态把POJO
转换为PO
,PO
相对于POJO
会增加一些用来管理数据库entity
状态的属性和方法。PO
对于programmer
来说完全透明,由于是运行期生成PO
,所以可以支持增量编译,增量调试。)
2
.POJO
传输过程中==
〉DTO
3
.POJO
用作表示层==
〉VO
PO
和VO
都应该属于它。
BO
:business object
业务对象
封装业务逻辑为一个对象(可以包括多个PO,通常需要将BO
转化成PO
,才能进行数据的持久化,反之,从DB
中得到的PO
,需要转化成BO
才能在业务层使用)。
关于BO
主要有三种概念
1
、只包含业务对象的属性;
2
、只包含业务方法;
3
、两者都包含。
在实际使用中,认为哪一种概念正确并不重要,关键是实际应用中适合自己项目的需要。
VO
:value object
值对象 / view object
表现层对象
1.主要对应页面显示(web
页面/swt
、swing
界面)的数据对象。
2
.可以和表对应,也可以不,这根据业务的需要。
注 :在struts
中,用ActionForm
做VO
,需要做一个转换,因为PO
是面向对象的,而ActionForm
是和view
对应的,要将几个PO
要显示的属性合成一个ActionForm
,可以使用BeanUtils
的copy
方法。
DTO
(TO
) :Data Transfer Object
数据传输对象
1.用在需要跨进程或远程传输时,它不应该包含业务逻辑。
2
.比如一张表有100
个字段,那么对应的PO
就有100
个属性(大多数情况下,DTO
内的数据来自多个表)。但view
层只需显示10
个字段,没有必要把整个PO
对象传递到client
,这时我们就可以用只有这10
个属性的DTO
来传输数 据到client
,这样也不会暴露server
端表结构。到达客户端以后,如果用这个对象来对应界面显示,那此时它的身份就转为VO
。
DAO
:data access object
数据访问对象
1.主要用来封装对DB
的访问(CRUD
操作)。
2
.通过接收Business
层的数据,把POJO
持久化为PO
。
相关文章推荐
- 【转】PO/POJO/BO/DTO/VO的区别
- PO/POJO/BO/DTO/VO/DAO的区别
- PO/POJO/BO/DTO/VO的区别
- PO/POJO/BO/DTO/VO的区别(转)
- PO/POJO/BO/DTO/VO的区别
- JavaBean, EntityBean, POJO, PO, BO,VO,DTO,DAO 区别
- 详述 PO VO BO DTO DAO 和 POJO 的概念及区别
- PO/POJO/BO/DTO/VO的区别
- PO/POJO/BO/DTO/VO的区别
- 详述 PO VO BO DTO DAO 和 POJO 的概念及区别
- PO/POJO/BO/DTO/VO的区别
- PO/POJO/BO/DTO/VO的区别(转)
- PO/POJO/BO/DTO/VO的区别
- POJO/PO/Bean/JavaBean/PO/DTO/VO/BO的区别和联系
- 详述 PO VO BO DTO DAO 和 POJO 的概念及区别
- PO/POJO/BO/DTO/VO的区别
- PO,VO,BO,DTO,POJO(POCO),DAO的区别(转载)
- PO/POJO/BO/DTO/VO的区别
- po,bo,vo,dto,pojo,dao区别
- PO & POJO & BO & DTO & VO的区别