persistant object持久对象java
最形象的理解就是一个PO就是数据库中的一条记录。数据库
好处是能够把一条记录做为一个对象处理,能够方便的转为其它对象。设计
businessobject业务对象对象
主要做用是把业务逻辑封装为一个对象。这个对象能够包括一个或多个其它的对象。object
好比一个简历,有教育经历、工做经历、社会关系等等。service
咱们能够把教育经历对应一个PO,工做经历对应一个PO,社会关系对应一个PO。sso
创建一个对应简历的BO对象处理简历,每一个BO包含这些PO。简历
这样处理业务逻辑时,咱们就能够针对BO去处理。总结
value object值对象数据
ViewObject表现层对象
主要对应界面显示的数据对象。
对于一个WEB页面,或者SWT、SWING的一个界面,用一个VO 对象对应整个界面的值。(包含界面全部值的对象)
Data Transfer
Object数据传输对象
主要用于远程调用等须要大量传输对象的地方。
好比咱们一张表有50个字段,那么对应的PO就有50个属性。
可是咱们界面上只要显示10个字段, 客户端用WEB service来获取数据,
没有必要把整个PO对象传递到客户端, 这时咱们就能够用只有这10个属性的DTO来传递结果到客户端,
这样也不会暴露服务端表结 构.到达客户端之后,若是用这个对象来对应界面显示,那此时它的身份就转为VO
plain ordinary java object 简单java对象
我的感受POJO是最多见最多变的对象,是一个中间对象,也是咱们最常打交道的对象。
一个POJO持久化之后就是PO 直接用它传递、传递过程当中就是DTO 直接用来对应表示层就是VO
DAO:
data access object数据访问对象
这个你们最熟悉,和上面几个O区别最大,基本没有互相转化的可能性和必要. 主要用来封装对数据库的访问。
经过它能够把POJO持久化为PO,用PO组装出来VO、DTO 总结下我认为一个对象到底是什么O要看具体环境,在不一样的层、不一样的应用场合,对象的身份也 不同,并且对象身份的转化也是很天然的。设计这些概念的初衷不是为了唬人而是为了更好的理解和处理各类逻辑,让你们能更好的去用面向 对象的方式处理问题.