PO(persistant object)

1.持久对象 在o/r映射的时候出现的概念,如果没有o/r映射,没有这个概念存在了。   2.通常对应数据模型(数据库),本身还有部分业务逻辑的处理。可以看成是与数据库中的表相映射的java对象。   3.最简单的PO就是对应数据库中某个表中的一条记录,多个记录可以用PO的集合。PO中应该不包含任何对数据库的操作。

    VO(value object)

1.值对象 通常用于页面与控制层之间的数据传递,和PO一样也是仅仅包含数据而已。   2.但应是抽象出的业务对象,可以和表对应,也可以不,这根据业务的需要.个人觉得同DTO(数据传输对象),在web上传递。   3.精确点讲它是业务对象,是存活在业务层的,是业务逻辑使用的,它存活的目的就是为数据提供一个生存的地方。

    BO(business object)

1.业务对象主要作用是把业务逻辑封装为一个对象。这个对象可以包括一个或多个其它的对象。   2.比如一个简历,有教育经历、工作经历、社会关系等等。我们可以把教育经历对应一个PO,工作经历对应一个PO,社会关系对应一个PO。

 建立一个对应简历的BO对象处理简历,每个BO包含这些PO。
  3.这样处理业务逻辑时,我们就可以针对BO去处理。

DTO(Data Transfer Object)

1.数据传输对象主要用于远程调用等需要大量传输对象的地方。   2.比如我们一张表有100个字段,那么对应的PO就有100个属性。但是我们界面上只要显示10个字段,客户端用WEB service来获取数据,

 没有必要把整个PO对象传递到客户端,这时我们就可以用只有这10个属性的DTO来传递结果到客户端,这样也不会暴露服务端表结构.
 到达客户端以后,如果用这个对象来对应界面显示,那此时它的身份就转为VO3.DTO是服务器端和客户端进行通 信的一个协议格式,合理的DTO设计将会使得服务器和客户端的通信更加顺畅。

通俗理解:

PO:

persistant object持久对象

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

DO:

个人简单理解就是类似托管的PO,操作DO不会影响数据库的数据。

DTO:

数据传输对象。例如前台查询不会返回密码只是返回 姓名、性别、生日,于是我们将信息封装到DTO中进行传输。

VO:

      value object值对象、view object视图对象。

主要用于业务层之间的数据传递,属性是根据当前业务的不同而不同的。

应用场景:获取的DTO数据中性别信息为0和1,但要求:手机上展示为帅哥和美女,而web端显示为男和女。

FormBean:

它只是HTML表单的封装,是为了在控制层弱化request中存储数据的作用,将request的get方法转变为对象的存取值。

如果让FormBean直接到业务层(它本来应该生活在控制层),View和Model就出现了强耦合,如果想改一下view的表示,整个业务逻辑都得改,恐怖的事情啊。

应用场景:

假如需要查询Person信息,并返回给前端”  姓名、年龄、是否成年 “。如果将FormBean直接作用与业务层,那么相关联的业务中都会设置这个”是否未成年“的字段,显然这不可取的。如果用VO处理业务那么简单多了,相关联的业务就不会受到影响,只需在FromBean里加一个字段就可以了,然后将VO转为FormBean交给前端。

java中几种常用的对象类型(po,vo,bo,dto)相关推荐

  1. JAVA中几种常用JSON库性能比较

    点击上方"方志朋",选择"置顶公众号" 技术文章第一时间送达! 作者:飞污熊 xncoding.com/2018/01/09/java/jsons.html 本 ...

  2. java 中几种常用数据结构

    原文地址:http://blog.csdn.net/u010947402/article/details/51878166 JAVA中常用的数据结构(java.util. 中) Java中有几种常用的 ...

  3. java中四种常用的引用类型_java中四种引用类型

    JDK.1.2 之后,Java 对引用的概念进行了扩充,将引用分为了:强引用(Strong Reference).软引用(Soft Reference).弱引用(Weak Reference).虚引用 ...

  4. Java 中几种常用的 RPC 框架介绍

    RPC是远程过程调用的简称,广泛应用在大规模分布式应用中,作用是有助于系统的垂直拆分,使系统更易拓展.Java中的RPC框架比较多,各有特色,广泛使用的有RMI.Hessian.Dubbo等.RPC还 ...

  5. Java中四种遍历Map对象的方法

    方法一:在for-each循环中使用entry来遍历,通过Map.entrySet遍历key和value,这是最常见的并且在大多数情况下也是最可取的遍历方式.在键值都需要时使用. Map<Int ...

  6. Java中几种常用的RPC框架介绍

    点击上方 "程序员小乐"关注, 星标或置顶一起成长 后台回复"大礼包"有惊喜礼包! 关注订阅号「程序员小乐」,收看更多精彩内容 每日英文 Crouch down ...

  7. java中四种引用类型(对象的强、软、弱和虚引用)

    2019独角兽企业重金招聘Python工程师标准>>> 对象的强.软.弱和虚引用在JDK 1.2以前的版本中,若一个对象不被任何变量引用,那么程序就无法再使用这个对象.也就是说,只有 ...

  8. JAVA中方法的类型转换_Java中几种常用数据类型之间转换的方法

    Java中几种常用的数据类型之间转换方法: 1. short-->int 转换 exp: short shortvar=0; int intvar=0; shortvar= (short) in ...

  9. java学习第一课----java中8种基本类型

    基本类型,或者叫做内置类型,是JAVA中不同于类的特殊类型.它们是我们编程中使用最频繁的类型,因此面试题中也总少不了它们的身影,在这篇文章中我们将从面试中常考的几个方面来回顾一下与基本类型相关的知识. ...

最新文章

  1. Google Test(GTest)使用方法和源码解析——概况
  2. 如何从文件的完整路径获取目录?
  3. python资料免费-MicroPython最全资料免费获取
  4. python数据分析的主要流程-python数据挖掘的基本流程有哪些?
  5. DELL服务器安装过程中出现的ERROR及解决方案
  6. javascript --- spa初体验
  7. sqlserver安装教程
  8. std::string中的find_first_of()和find_last_of()函数
  9. java1.9关键字_对 Java 9 把单个下划线作为关键字的猜想
  10. Linux字符串转换函数汇总
  11. android Service 的简单使用
  12. spring boot 拦截器 或 Spring AOP 方式记录请求日志
  13. LabVIEW基于Kvaser USBcan的UDS烧录Hex文件
  14. 小新air14 2020 i5-1035G1完美黑苹果
  15. 【总结】知识点巩固------Linux命令总结
  16. 计算机毕业设计springcloud基于微服务的家居体验平台的设计与实现
  17. 3.23早间BTC/ETH急剧回踩,短暂拉升等机会
  18. 二、JSP常用小知识之http 403错误
  19. ubuntu14.04安装谷歌输入法
  20. Win11账号被锁定无法登录怎么办?Win11账号被锁定无法登录

热门文章

  1. 数画-AI绘画-免费的人工智能AI绘画网站
  2. MIG连载-----写模块(3)
  3. 持久内存指令(PMDK)简介
  4. 利用函数求出两个数的最大值
  5. origin处理多组红外数据_【图文】用Origin作多组红外数据图
  6. 银行接口数据包(银行名称获取)
  7. 2021 ICPC 银川打铜记
  8. 桌面html文件图标异常,.htm .html文件图标显示异常的解决办法
  9. bt 下载工具 deluge 配置 优化 使用
  10. 视频配音变声用什么软件?这些软件能帮助你