2EE开发中大量的专业缩略语很是让人迷惑, 特别是对于刚毕业的新人来说更是摸不清头脑。若与公司大牛谈技术人家出口就是PO VO BO 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框架的类或接口。
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)

转载于:https://www.cnblogs.com/wangxiong/archive/2013/05/29/3107172.html

PO VO BO DTO POJO DAO(转)相关推荐

  1. JavaEE PO VO BO DTO POJO DAO 整理总结(转)

    阅读目录 1.DAO[data access object]数据访问对象 2.DTO[data transfer object]数据传输对象 3.PO[persistant object]持久层对象 ...

  2. JavaEE PO VO BO DTO POJO DAO 整理总结

    阅读目录 1.DAO[data access object]数据访问对象 2.DTO[data transfer object]数据传输对象 3.PO[persistant object]持久层对象 ...

  3. JSP PO VO BO DTO POJO DAO解释

    PO :persistent object持久对象 1 .有时也被称为Data对象,对应数据库中的entity,可以简单认为一个PO对应数据库中的一条记录. 2 .在hibernate持久化框架中与i ...

  4. java qo_Java中DAO/DTO/PO/VO/BO/QO/POJO

    ORM:是Object Relational Mapping(对象关系映射)的缩写. 通俗点讲,就是将对象与关系数据库绑定,用对象来表示关系数据.在O/R/M的世界里,有两个基本的也是重要的东东需要了 ...

  5. DO VO BO DTO POJO概念记录

    第 1 个:DAO DAO(Data Access Object)数据访问对象,它是一个面向对象的数据库接口,负责持久层的操作,为业务层提供接口,主要用来封装对数据库的访问,常见操作无外乎 CURD. ...

  6. PO/VO/BO和POJO概念

    PO:persistent object 持久对象 1 .有时也被称为Data对象,对应数据库中的entity,可以简单认为一个PO对应数据库中的一条记录. 2 .在hibernate持久化框架中与i ...

  7. java中几种常用的对象类型(po,vo,bo,dto)

    PO(persistant object) 1.持久对象 在o/r映射的时候出现的概念,如果没有o/r映射,没有这个概念存在了.   2.通常对应数据模型(数据库),本身还有部分业务逻辑的处理.可以看 ...

  8. PO BO VO DTO POJO DAO概念及其作用(附转换图)

    J2EE开发中大量的专业缩略语很是让人迷惑,尤其是跟一些高手讨论问题的时候,三分钟就被人家满口的专业术语喷晕了,PO VO BO DTO POJO DAO,一大堆的就来了(听过老罗对这种现象的批判的朋 ...

  9. PO/BO/VO/DTO/POJO/DAO/DO

    文章目录 DO(Domain Object) DO(Data Object) PO VO BO DTO POJO DAO JavaBean EJB Entity 应用程序的分层设计 MVC 业务分层 ...

最新文章

  1. ubuntu中忘记root密码的解决方法
  2. 密码机 密钥管理项目安装配置 从零开始
  3. RabbitMQ单机瞎玩(1)
  4. linux内核 端口,Linux内核中IO端口资源管理
  5. 从git上clone项目到IDEA
  6. 2010-03-23 杂七杂八
  7. 凸台可以延伸吗_知道对比度、清晰度和锐化的差别吗?操作不好,让一张照片报废...
  8. Mybatis3.3.x技术内幕(十一):执行一个Sql命令的完整流程
  9. MyEclipse或Eclipse中工程的导入和导出
  10. 实战HTML:模拟简书首页静态实现
  11. 孙鑫VC学习笔记:第八讲 逃跑按钮的巧妙实现和MFC中指针的获取
  12. dell笔记本linux无网卡驱动,DELL R710 SERVER linux版本网卡驱动安装
  13. rs485的1:n计算机连接和n:n的主从plc通讯,富士人机界面与GE90-70 PLC N:1通讯在轧钢生产线的应用...
  14. (01)Webrtc::Fec与Nack的二三事
  15. Python学习足迹
  16. igraph 利用节点列表输出子图并存储
  17. 智慧农业智能节水灌溉 机井灌溉控制器
  18. Android APP的签名
  19. 利用多组学整合鉴定人类疾病共享的和疾病特异性的宿主基因-微生物组关联
  20. android notify() notifyAll()的区别

热门文章

  1. pyqt5打包迁移到其他电脑上的字体种类改变问题
  2. 电脑店u盘安装linux,电脑店U盘启动盘pe系统启动教程V7.5
  3. c语言无法用3字母序列,当字符序列工作为下图输入时,输出长度为3的,且可用作C语言标识符的序列的有()。【浙江大学2004...
  4. java监听器高阶运用_史上最全面'java监听器'解读,读完就能用进项目 | 程序员灯塔...
  5. .html文件是什么文件,html是什么文件
  6. 菜鸡navacate 使用 orical 查询(坑)
  7. outlook设置263邮件服务器,大神详解win10系统怎么在Outlook中添加263邮箱的详细教程...
  8. 【财经期刊FM-Radio|2021年03月03日】
  9. Kafka API的运用(Producer API)
  10. Linux基础学习笔记