`
zjutsoft
  • 浏览: 460383 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

PO BO VO DTO POJO DAO概念及其作用

    博客分类:
  • java
阅读更多
J2EE开发中大量的专业缩略语很是让人迷惑,尤其是跟一些高手讨论问题的时候,三分钟就被人家满口的专业术语喷晕了,PO VO BO DTO POJO DAO,一大堆的就来了(听过老罗对这种现象的批判的朋友会会心一笑)。

    首先声明偶也不是什么高手,以下总结都是自己的体会。不对之处请您多指教。

PO:
persistant object持久对象

最形象的理解就是一个PO就是数据库中的一条记录。
好处是可以把一条记录作为一个对象处理,可以方便的转为其它对象。




--------------------------------------------------------------------------------


BO:
business object业务对象

主要作用是把业务逻辑封装为一个对象。这个对象可以包括一个或多个其它的对象。
比如一个简历,有教育经历、工作经历、社会关系等等。
我们可以把教育经历对应一个PO,工作经历对应一个PO,社会关系对应一个PO。
建立一个对应简历的BO对象处理简历,每个BO包含这些PO。
这样处理业务逻辑时,我们就可以针对BO去处理。




--------------------------------------------------------------------------------


VO :
value object值对象
ViewObject表现层对象

主要对应界面显示的数据对象。对于一个WEB页面,或者SWT、SWING的一个界面,用一个VO对象对应整个界面的值。




--------------------------------------------------------------------------------


DTO :
Data Transfer Object数据传输对象
主要用于远程调用等需要大量传输对象的地方。
比如我们一张表有100个字段,那么对应的PO就有100个属性。
但是我们界面上只要显示10个字段,
客户端用WEB service来获取数据,没有必要把整个PO对象传递到客户端,
这时我们就可以用只有这10个属性的DTO来传递结果到客户端,这样也不会暴露服务端表结构.到达客户端以后,如果用这个对象来对应界面显示,那此时它的身份就转为VO




--------------------------------------------------------------------------------


POJO :
plain ordinary java object 简单java对象
个人感觉POJO是最常见最多变的对象,是一个中间对象,也是我们最常打交道的对象。

一个POJO持久化以后就是PO
直接用它传递、传递过程中就是DTO
直接用来对应表示层就是VO





--------------------------------------------------------------------------------

DAO:
data access object数据访问对象
这个大家最熟悉,和上面几个O区别最大,基本没有互相转化的可能性和必要.
主要用来封装对数据库的访问。通过它可以把POJO持久化为PO,用PO组装出来VO、DTO


分享到:
评论

相关推荐

    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,TO,BO,DAO,POJO)解释

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

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

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

    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