文章目录

  • 一、概念讲解
  • 二、概念澄清
  • 三、使用场景
  • 四、经验总结

一、概念讲解

  • VO(View/Value Object)—— 视图对象

  • DTO(Data Transfer Object)—— 数据传输对象

  • BO(Business Object)—— 业务对象

  • PO(Persistent Object)—— 持久对象

  • DO(Data/Domain Object)—— 数据/领域对象

  • POJO(Plain Old/Ordinary Java Object)—— 以上模型的统称

    POJO 是简单的 Java 对象,不包含业务逻辑、能够控制自己内部所有属性访问的 Java 对象。

二、概念澄清

  • JavaBean VS POJO

    JavaBean POJO
    没有业务逻辑 没有业务逻辑
    必须构造函数 无需构造函数
    private 修饰成员变量 成员变量的修饰符无限制

    P.S

    JavaBean 其实是 POJO 的一种形式(JavaBean < POJO)

三、使用场景

  • 网摘关系图

  • DTO(Data Transfer Object)数据传输对象

    数据传输对象比较特殊,之所以将 DTO 绘制在 展示层业务逻辑层 之间,是因为它有两种存在形式:

    • 前端:它是以 Json 字串的形式存在
    • 后端:它是以 Java 对象的形式存在

    微服务之间 DTO 对象的模型鉴定形式:

    • 服务(模块)与服务(模块)之间相对独立,我们可以将数据传输对象命名为 DTO
    • 服务(模块)与服务(模块)之间不是独立,每一个都不是一个完整的业务模块,拆分可能仅仅是因为计算复杂度或者性能问题考虑拆分的问题,那么就不能将对象命名为 DTO,只能是 BO
  • VO(View/Value Object)—— 视图对象

    VO 就是展示用的数据,不管展示方式是网页、客户端、APP,只要是这些数据用于展示给人看的就是 VO

  • VO VS DTO

    • 区别一:
      字段可能不一样,VO 会根据实际情况,对字段有所删减
    • 区别二:
      属性值可能不一样,VO 会根据 DTO 中对值进行展示业务对解释(比如:为不暴露数据库字段,修改属性名称、敏感字段不展示等等)
  • PO(Persistent Object)—— 持久对象

    简单的说 PO 就是数据库中的记录,一个 PO 的数据结构对应着库中的表结构,表中的一条记录就是一个 PO 对象。对于 PO 来说,数量是相对固定的,不会超过数据库中表的数量。等同于 Entity,它两概念是一致的。

  • BO(Business Object)—— 业务对象

    BO 就是 PO 的组合

    • 简单解释:
      比如:PO 是一个交易记录,BO 就是一个人全部的交易记录集合对象
    • 复杂解释:
      比如:PO1 是交易记录,PO2 是登录记录、PO3 是商品浏览记录、PO4 是添加购物记录,BO 就是个人网站行为对象
  • DO VS DTO

    这两个的区别主要也是字段的删减。BO 对内,为了进行业务计算需要辅助数据或者一个业务有多个对外接口,BO 可能会含有很多接口对外所不需要的数据,因此 DTO 需要在 BO 的基础上选取自己所需的数据赋值。

  • DO(Data/Domain Object)—— 数据/领域对象

    • 阿里开发手册
      DO 等同于 PO
    • DDD 领域驱动设计
      DO 等同于 BO

四、经验总结

  1. PO(Entity) 这个是没有办法省略的,所有涉及数据库操作的都需要有持久化对象
  2. 不是非常大型的简单系统,DTOBO 可以合并为一个,当业务扩展的时候注意拆分即可
  3. 概念是给人用的,多人协作的时候一定要保证大家的概念一致。请勿形而上学、过度设计、一切设计都基于现有的业务规则和系统大小

VO、DTO、BO、PO、DO、POJO 数据模型的理解和实际使用相关推荐

  1. VO,DTO,BO,POJO,PO的概念介绍

    po: 1.po:popersistent object 持久对象,持久对象的意思指的是可以从内存中存储到关系型数据库中. 2.因此一个po对应的数据库中的每一条记录. pojo: 1. pojo:p ...

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

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

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

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

  4. DAO、DTO、PO、POJO、BO、VO、AO基本概念

    一.基本概念: DAO:Data access object 数据库访问对象 主要用来封装对数据库的访问,通过它可以把POJO持久化为PO,用PO组装出来VO.DTO. DTO:Data Transf ...

  5. vo bo po dao pojo dto

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

  6. Java 中的PO VO DTO BO

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

  7. PO VO DTO BO区别及用法

    PO: persistant object持久对象 最形象的理解就是一个PO就是数据库中的一条记录. 好处是可以把一条记录作为一个对象处理,可以方便的转为其它对象. BO: businessobjec ...

  8. VO,DTO,DO,PO区别

    何为POJO POJO(Plain Ordinary Java Object),即简单Java对象,就是一个我们最常见的普通Java对象,这个概念是被大家叫出来的,它具有一些属性,然后提供对应的get ...

  9. 简单理解VO、DTO、PO、DO的概念、区别

    简单理解VO.DTO.PO.DO的概念.区别 概念 VO(View Object) 视图对象,用于表现层,对指定页面或者组件需要的数据进行封装. DTO(Date Transfer Object) 数 ...

  10. bo dto java vo_java中PO、VO、BO、POJO、DAO、DTO、TO、QO、Bean、conn的理解

    O/R Mapping 是 Object Relational Mapping (对象关系映射)的缩写.通俗点讲,就是将对象与关系数据库绑定,用对象来表示关系数据.在 O/R Mapping 的世界里 ...

最新文章

  1. 子窗体更新父窗体控件内容
  2. 脉冲20KV高压发生器电弧打火
  3. 联想e470无线网卡驱动_笔记本显示已关闭无线功能,请问怎样打开?谢谢!
  4. zookeeper入门系列
  5. L. Mod(预处理+分块)
  6. shell脚本之shellcode自动提取工具
  7. [Cogs14] [网络流24题#1] 飞行员分配方案 [网络流,最大流,二分图匹配]
  8. java适配器模式_适配器模式的设计,你get到了吗?
  9. Cookie和Session的关系(个人理解)
  10. 【Java面试题系列】:Java中final finally finalize的区别
  11. html脚本src,HTML script脚本标签
  12. 设计一个简单HTML爵士音乐网页(HTML+CSS)
  13. C语言实现调用python绘图
  14. 主成分分析与因子分析
  15. 电影影视网站对接微信公众号 日引流500+的实例教学
  16. 程序员电脑组装_解密中国互联网企业创始人,程序员是如何打下半壁江山的?...
  17. html长图转换成pdf,支持把各类文档转换成 HTML5(SVG)接口、长图片、PDF 。word转pdf、word转html5、pdf转网页html5、pdf转图片的接口...
  18. Ant Design mentions组件更改样式
  19. tensorflow学习笔记(二十七):leaky relu
  20. Win2008安装11g报错:orandce11.dll.dbl and orancds11.dll.dbl 文件找不到

热门文章

  1. 数学:AI和大数据的基础
  2. IB文学:如何评论现代诗歌?
  3. mysql瀑布流布局插件_瀑布流JS插件
  4. c++程序员书籍推荐
  5. Docker与Dragonfly详细多机部署
  6. 填核酸采样资料,手机号填错了,身份证号码没错。
  7. 中国图书分类法检索计算机方面的图书,《中国图书分类法》(简称《中图法》)是我国常用的分类法,要检索计算机方面的图书,需要在( )类目下查找。...
  8. win7不休眠方式设置
  9. Visual Studio 2015 Enterprise - 企业版 - 简体中文
  10. 至今我尚未见过一个程序化交易系统