1、PO:persistant object 持久对象,能够当作是与数据库中的表相映射的java对象。最简单的PO就是对应数据库中某个表中的一条记录,多个记录能够用PO的集合。PO中应该不包含任何对数据库的操做。html
2、VO:value object值对象。一般用于业务层之间的数据传递,和PO同样也是仅仅包含数据而已。但应是抽象出的业务对象,能够和表对应,也能够不,这根据业务的须要.我的以为同DTO(数据传输对象),在web上传递。java
3、DAO:data access object 数据访问对象,此对象用于访问数据库。一般和PO结合使用,DAO中包含了各类数据库的操做方法。经过它的方法,结合PO对数据库进行相关的操做。web
4、BO:business object 业务对象,封装业务逻辑的java对象,经过调用DAO方法,结合PO,VO进行业务操做。数据库
5、POJO:plain ordinary java object 简单无规则java对象,我我的以为它和其余不是一个层面上的东西,VO和PO应该都属于它.spa
PO: persistant object持久对象 最形象的理解就是一个PO就是数据库中的一条记录。 好处是能够把一条记录做为一个对象处理,能够方便的转为其它对象。htm
BO: business object业务对象 主要做用是把业务逻辑封装为一个对象。这个对象能够包括一个或多个其它的对象。 好比一个简历,有教育经历、工做经历、 关系等等。 咱们能够把教育经历对应一个PO,工做经历对应一个PO, 关系对应一个PO。 创建一个对应简历的BO对象处理简历,每一个BO包含这些PO。 这样处理业务逻辑时,咱们就能够针对BO去处理。对象
VO : value object值对象 ViewObject表现层对象 主要对应界面显示的数据对象。对于一个WEB页面,或者SWT、SWING的一个界面,用一个VO对象对应整个界面的值。blog
DTO : Data Transfer Object数据传输对象 主要用于远程调用等须要大量传输对象的地方。 好比咱们一张表有100个字段,那么对应的PO就有100个属性。 可是咱们界面上只要显示10个字段, 客户端用WEB service来获取数据,没有必要把整个PO对象传递到客户端, 这时咱们就能够用只有这10个属性的DTO来传递结果到客户端,这样也不会暴露服务端表结构.到达客户端之后,若是用这个对象来对应界面显示,那此时它的身份就转为VOget
POJO : plain ordinary java object 简单java对象 我的感受POJO是最多见最多变的对象,是一个中间对象,也是咱们最常打交道的对象。 一个POJO持久化之后就是PO 直接用它传递、传递过程当中就是DTO 直接用来对应表示层就是VOit
DAO: data access object数据访问对象 这个你们最熟悉,和上面几个O区别最大,基本没有互相转化的可能性和必要. 主要用来封装对数据库的访问。经过它能够把POJO持久化为PO,用PO组装出来VO、DTO