Java中PO、BO、VO、DTO、POJO、DAO概念及其作⽤和项⽬
实例图(转)
PO(bean、entity等命名):
Persistant Object持久对象,数据库表中的记录在java对象中的显⽰状态
最形象的理解就是⼀个PO就是数据库中的⼀条记录。
好处是可以把⼀条记录作为⼀个对象处理,可以⽅便的转为其它对象。
BO(service、manager、business等命名):
Business Object业务对象
主要作⽤是把业务逻辑封装为⼀个对象。这个对象可以包括⼀个或多个其它的对象。
形象描述为⼀个对象的形为和动作,当然也有涉及到基它对象的⼀些形为和动作。⽐如处理
⼀个⼈的业务逻辑,有睡觉,吃饭,⼯作,上班等等形为还有可能和别⼈发关系的形为。
这样处理业务逻辑时,我们就可以针对BO去处理。
VO(from也有此写法):
Value Object值对象
主要体现在视图的对象,对于⼀个WEB页⾯将整个页⾯的属性封装成⼀个对象。然后⽤⼀个VO对象在控制层与视图层进⾏传输交换。
DTO (经过处理后的PO,可能增加或者减少PO的属性):
Data Transfer Object数据传输对象
主要⽤于远程调⽤等需要⼤量传输对象的地⽅。
⽐如我们⼀张表有100个字段,那么对应的PO就有100个属性。
但是我们界⾯上只要显⽰10个字段,
客户端⽤WEB service来获取数据,没有必要把整个PO对象传递到客户端,
这时我们就可以⽤只有这10个属性的DTO来传递结果到客户端,这样也不会暴露服务端表结构.到达客户端以后,如果⽤这个对象来对应界⾯显⽰,那此时它的⾝份就转为VO
POJO(POJO是⼀种概念或者接⼝,⾝份及作⽤随环境变化⽽变化):
POJO有⼀些Private的参数作为对象的属性。然后针对每个参数定义了get和set⽅法作为访问的接⼝
Plain Ordinary Java Object简单Java对象
即POJO是⼀个简单的普通的Java对象,它不包含业务逻辑或持久逻辑等,但不是JavaBean、EntityBean等,不具有任何特殊⾓⾊和不继承或不实现任何其它Java框架的类或接⼝。
mvc实例POJO对象有时也被称为Data对象,⼤量应⽤于表现现实中的对象。
⼀个POJO持久化以后就是PO。
直接⽤它传递、传递过程中就是DTO
直接⽤来对应表⽰层就是VO
DAO(Data Access Object数据访问对象):
这个⼤家最熟悉,和上⾯⼏个O区别最⼤,基本没有互相转化的可能性和必要.
主要⽤来封装对数据库的访问。通过它可以把POJO持久化为PO,⽤PO组装出来VO、DTO
Controller控制层主要是Action/Servlet等构成(⽬前Spring MVC则是通过@Controller标签使⽤)
此层业务层与视图层打交道的中间层,负责传输VO对象和调⽤BO层的业务⽅法,负责视图层请求的数据处理后响应给视图层。
View(视图层)
主要是指由JSP、HTML等⽂件形成的显⽰层。
总结⼀下要⽤具体的X0需要看具体环境及项⽬架构,在不同的层、不同的应⽤场合,对象的⾝份也不⼀样,⽽且对象⾝份的转化也是很⾃然的。就像你对⽼婆来说就是⽼公,对⽗母来说就是⼦⼥。设计这些概念的初衷不是为了唬⼈⽽是为了更好的理解和处理各种逻辑,让⼤家能更好的去⽤⾯向对象的⽅式处理问题。
在平时开发项⽬中⼤家千万过度设计各层,因为这样会带来⼤量的⼯作和重复⼯作。如果不是⼤型系统可简化⼀些层,因为技术是为应⽤服务的。
上述名词在实际项⽬的应⽤举例:
控制层(controller-action),业务层/服务层( bo-manager ),实体层(po-entity),dao(dao),视图对象(Vo-本项⽬省略),视图层(view-jsp/html)
参考:
(以上内容转⾃此篇⽂章)
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论