PO:
persistant object持久对象

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

BO:
businessobject业务对象
主要作用是把业务逻辑封装为一个对象。这个对象可以包括一个或多个其它的对象。
比如一个简历,有教育经历、工作经历、社会关系等等。
我们可以把教育经历对应一个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

总结下我认为一个对象究竟是什么O要看具体环境,在不同的层、不同的应用场合,对象的身份也不一样,而且对象身份的转化也是很自然的。就像你对老婆来说就是老公,对父母来说就是子女。设计这些概念的初衷不是为了唬人而是为了更好的理解和处理各种逻辑,让大家能更好的去用面向对象的方式处理问题.

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sinat_25216047/article/details/50332667

PO VO DTO BO区别及用法相关推荐

  1. VO的实际应用;后端接收前端传入的值;实体类转化VO;PO,VO,DTO,BO,DAO,POJO区别

    文章目录 各层转换流程 分层领域模型规约: 领域模型命名规约: 后端向前端传参 封装 前端向后台传参 封装 快速转换解决方案 参考 各层转换流程 分层领域模型规约: DO( Data Object): ...

  2. Java 中的PO VO DTO BO

    PO 持久对象,数据: BO 业务对象,封装对象.复杂对象 ,里面可能包含多个类: DTO 传输对象,前端调用时传输 : VO 表现对象,前端界面展示. 当你业务足够简单时,一个POJO 也完全当做P ...

  3. Java开发中的几种对象的说明(PO,VO,DTO,BO,POJO,DAO,SAO等)

    一.PO :(persistant object ),持久对象 可以看成是与数据库中的表相映射的java对象,也就是说只有属性和setter和getter方法.使用Hibernate来生成PO是不错的 ...

  4. 领域模型命名规约【PO,VO,POJO,BO,DTO,DO,JavaBean】

    PO,VO,POJO,BO,DTO,DO,JavaBean 在这之前我先说一下,在阿里巴巴开发手册中有提到这种领域模型命名规约,即如下图: 下面是更加详细的介绍: po PO(Persistant O ...

  5. java的(PO,VO,TO,BO,DAO,POJO)解释

    java的(PO,VO,TO,BO,DAO,POJO)解释    O/R Mapping 是 Object Relational Mapping(对象关系映射)的缩写.通俗点讲,就是将对象与关系数据库 ...

  6. java的(PO,VO,TO,BO,DAO,POJO)解释1

    java的(PO,VO,TO,BO,DAO,POJO)解释  O/R Mapping 是 Object Relational Mapping(对象关系映射)的缩写.通俗点讲,就是将对象与关系数据库绑定 ...

  7. java的几种对象(PO,VO,DAO,BO,POJO)解释

    本文转自: http://blog.csdn.net/bzhxuexi/article/details/8227808 Java的几种对象(PO,VO,DAO,BO,POJO)解释   一.PO:pe ...

  8. java: PO,VO,TO,BO,DAO,POJO 解释

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. O/R Mapping 是 Object Relational Mapping(对象关系映射)的缩写 ...

  9. java反射po转vo_Java项目的(PO,VO,TO,BO,DAO,POJO)解释(转)

    它们是由一组属性和属性的get和set方法组成.从结构上看,它们并没有什么不同的地方.但从其意义和本质上来看是完全不同的. 区别 1.VO是用new关键字创建,由GC回收的. PO则是向数据库中添加新 ...

最新文章

  1. android setting模块,android O版本 设置(Settings)模块总结--设置的一级界面的加载
  2. java c语言union转换_C语言联合体(union)的使用方法及其本质-union
  3. 算法—详细讲解单向循环链表的实现(python)
  4. Java程序员必备的10个大数据框架
  5. Django 模型字段 —— ImageField
  6. Swift 结构体和类的最大区别
  7. Oracle通过主键id删除记录很慢
  8. 科学计算机eq7,科学计算器HiEdu 580 Scientific Calculator
  9. PAT_B_1029_Java(20分)
  10. 8086地址传送指令LEA,LDS,LES
  11. linux不用命令开启ssh,不用密码也能ssh登陆Linux?
  12. BZOJ2563 阿狸和桃子的游戏
  13. Android Studio 第五十五期 - Studio3.0升级到gradle3.0.0后API失效方案
  14. java中try中的语句执行吗_Java异常try里面有return,finally代码会执行吗
  15. JDK1.8下载 百度网盘
  16. 关于 FAT12 文件系统
  17. 数据分析进阶-Excel绘制分段折线图
  18. 【浏览器强制360网页导航】360导航被强制设成首页如何取消?
  19. 网站服务器在本地是指,本地域名是什么意思?本地域名服务器在哪?
  20. 算法分析与设计实验报告——实现汽车加油问题

热门文章

  1. WEB安全漏洞(持续更新)
  2. 微信小程序连接阿里云物联网平台操控设备(IOT)一
  3. 中国近地表日气温数据集
  4. Firefox 此链接不安全去除
  5. 解决在word中用mathtype编辑的公式转换成pdf时出现错位现象
  6. win10 命令行打开文件
  7. 天天用身份证,你知道这背后的秘密么?
  8. 手机忘记密码解锁的 6 大软件方法
  9. OpenGL点精灵(Point Sprite)
  10. “啤酒与尿布”--零售业的购物篮分析包含了哪些数据挖掘算法?