`
zz563143188
  • 浏览: 2275997 次
  • 性别: Icon_minigender_1
  • 来自: 珠海
博客专栏
77fc734c-2f95-3224-beca-6b8da12debc8
编程工具介绍
浏览量:578905
D9710da2-8a00-3ae6-a084-547a11afab81
Spring Mvc实战(...
浏览量:1087989
D3f88135-07de-3968-a0f0-d2f13428c267
项目开发经验
浏览量:1657611
社区版块
存档分类
最新评论

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

    博客分类:
  • java
阅读更多

 

      J2EE开发中大量的专业缩略语很是让人迷惑, 特别是对于刚毕业的新人来说更是摸不清头脑。若与公司大牛谈技术人家出口就是PO VO BO DTO POJO DAO 等,让新人们无比仰慕大牛。
 
 为了让新人快速成为牛人,今天我详细的为大家介绍这些专业名词。
 
企业级项目实战(带源码)地址:  http://zz563143188.iteye.com/blog/1825168
收集五年的开发资料下载地址:  http://pan.baidu.com/share/home?uk=4076915866&view=share
 
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)

 
 
  • 大小: 76 KB
  • 大小: 524.7 KB
14
3
分享到:
评论
4 楼 小嘿同学 2013-06-06  
楼主真心大牛,而且好人,膜拜了。。。
3 楼 陈琰琰 2013-05-16  
好文章,学习了。
2 楼 zz563143188 2013-03-22  
yuechen323 写道
写的好,再加上各个层的示例代码,异常处理就更完整了

具体应用例子详见:  http://zz563143188.iteye.com/blog/1825168
1 楼 yuechen323 2013-03-22  
写的好,再加上各个层的示例代码,异常处理就更完整了

相关推荐

    Java中 PO VO BO DTO DAO 和 POJO 关系图

    Java中 PO VO BO DTO DAO 和 POJO 关系图

    java术语(PO/POJO/VO/BO/DAO/DTO)

    本文将详细解析"PO/POJO/VO/BO/DAO/DTO"这六个概念,并探讨它们在实际项目开发中的作用和应用场景。 1. PO(Persistent Object,持久化对象) PO是指与数据库表结构一一对应的Java对象,它通常包含了数据库表中的...

    po vo dto bo to

    ### Java中的PO、VO、TO、BO、DAO与POJO详解 #### 一、概述 在Java企业级应用开发中,经常会遇到各种类型的对象,如PO、VO、TO、BO、DAO以及POJO等。这些对象各有侧重,在系统架构的不同层次扮演着不同的角色。...

    Java的几种对象(PO-VO-DAO-BO-POJO)解释

    总结来说,PO-VO-DAO-BO-POJO这些概念在Java开发中非常常见,每种类型的对象都有其特定的作用和应用场景。理解这些概念有助于更好地设计系统架构,提高代码的可维护性和扩展性。在实际开发过程中,根据项目的具体...

    Java的(PO,VO,TO,BO,DAO,POJO)解释

    本篇文章将对Java中的PO、VO、TO、BO、DAO、POJO等概念进行详细的解释,帮助读者更好地理解和应用这些技术。 PO(Persistant Object)持久对象 PO是Java中的一种重要概念,表示持久对象。在O/R映射中,PO通常对应...

    java中PO、VO、BO、POJO、DAO、DTO、TO、QO、Bean、conn的理解

    在 Java 中,PO、VO、BO、POJO、DAO、DTO、TO、QO 等概念都是 O/R Mapping 中的重要概念。它们之间的关系是:BO 封装业务逻辑,调用 DAO 方法,结合 PO 和 VO 进行业务操作。DAO 中包含了各种数据库的操作方法,通过...

    VO / DTO / BO / ORM DAO entity DO PO/ POJO(分层领域模型规约)整理

    通过对VO、DTO、BO、ORM、DAO、Entity、DO、PO 和 POJO 的深入分析,我们可以看出这些概念在不同的层次和场景下发挥着各自的作用。正确地使用这些模型能够帮助开发者更好地组织代码,提高系统的可维护性和扩展性。在...

    MVC设计模式

    #### 五、PO/VO/DAO/BO/DTO的区分 - **PO (Persistant Object)**:持久化对象,用来表示数据库表中的记录,每个PO对象对应一条数据库记录。 - **VO (Value Object)**:值对象,用于业务逻辑层中的数据传递。VO更多...

    Blog:充当日常笔记或者个人博客吧

    Nginx配置文件详解Linux 安装JenkinsJAVA 多线程详解java 多线程学习How to create a Hello World with IntelliJ and Aspect JJava各种对象(PO,BO,VO,DTO,POJO,DAO,Entity,JavaBean,JavaBeans)的区分Java finally...

    程序员从初级到高级知识汇集

    除此之外,书中还涉及了如何自定义MyEclipse的编译目录,设置JAVA环境变量,以及PO、BO、VO、DTO、POJO、DAO的概念和它们在软件开发中的角色,这些都是Java开发中不可或缺的基础知识。 整体来看,这本书涵盖了从...

    Java代码规范.pdf

    - 类名应使用UpperCamelCase风格,例外情况为DO、BO、DTO、VO、AO、PO、UID等。 - 方法名、参数名、成员变量、局部变量应统一使用lowerCamelCase风格。 - 常量命名应全部大写,单词间用下划线隔开。 - 抽象类...

    基于SOA和ROA的整体技术架构.docx

    - **POJO (Plain Ordinary Java Object)**:简单的Java对象,可以在不同阶段转化为PO、DTO、VO等。 - **PO (Persistant Object)**:对应数据库实体的持久化对象。 - **VO (View Object)**:用于表示层的对象,...

    《阿里巴巴Java开发手册》v1.4.0(详尽版).docx

    - **规定**:类名统一使用 UpperCamelCase 风格,特殊情况除外(如 DO/BO/DTO/VO/AO/PO/UID 等)。 - **示例**:正确的命名方式如 `MarcoPolo`、`UserDO`、`XmlService`、`TcpUdpDeal`、`TaPromotion`。 4. **变量...

    阿里最新Java开发规范

    类名应当遵循`UpperCamelCase`风格,除非是某些特定的缩写词如`DO`(Data Object)、`BO`(Business Object)、`DTO`(Data Transfer Object)、`VO`(View Object)、`AO`(Application Object)、`PO`(Persistent...

    阿里巴巴1.4代码书写规范word版本

    3. **强制规定**:类名遵循`UpperCamelCase`风格,但特定命名如`DO`、`BO`、`DTO`、`VO`、`AO`、`PO`、`UID`等除外。 - **正例**:如`MarcoPolo`、`UserDO`、`XmlService`、`TcpUdpDeal`、`TaPromotion`。 - **...

Global site tag (gtag.js) - Google Analytics