VO、DTO、BO、PO、DO区别

  • VO:(View Object)视图对象,一般位于Controller层,用于展示视图。
  • DTO:(Data Transfer Object)数据传输对象, 即RPC 接口请求或传输出去的对象,用于展示层与服务层之间的数据传输对象。
  • BO:(Business Object)业务层对象,一般位于Service层,它与 DO 会有一定的属性差别。
  • PO:(Persistent Object)持久化对象,对象属性与数据库字段形成映射关系。
  • DO:(Domain Object)领域对象,就是从现实世界中抽象出来的有形或无形的业务实体,可以当成BO;(Data Object)数据层对象,对象属性与数据库字段形成映射关系,可以当成PO

VO与DTO

  • VO:展示层需要展示的数据。
  • DTO:业务逻辑层需要接收的数据和返回的数据。

VO与DTO的属性值基本相同,但是VO是DTO的最终解释,可以对DTO的字段进行适当删减。 举个例子:

例子1

DTO中返回的字段为

{"sex": "女",
}

对于大部分需求来说中返回的字段为中返回的字段就已经够用了,但是如果说业务的需求是展示具体的身份,那就需要在VO层进行进一步解释, VO中返回的字段为:

{"sex": "女演员",
}

例子2

DTO

{"sex": "男","age": "17"
}

如果说展示层只需要展示是否成年, VO:

{"age": "未成年"
}

PO与DO

  • PO:通常来说是只有get/set方法的POJO,也就是常说的实体类。
  • DO:一般是PO的组合,也就是多表联查的映射。

例子1

PO1:

{"id": "999","name": "ahzoo"
}

PO2:

{"userId": "999","role": "管理员"
}

DO:

{"id": "999","name": "ahzoo","role": "管理员"
}

BO和PO

BO:与PO的区别是,BO会删掉一些不宜在展示层展示的数据,只对外提供必要的字段属性。 比如用户需要查询用户的信息,通常来说这个返回给用户的用户信息是不应该包含密码之类的一些字段的,那么我们就可以在BO层做一下处理。

举例, 如果用PO层的话返回的字段为:

{"id": "999","name": "ahzoo","password":"123456"
}

BO层的放回字段:

{"id": "999","name": "ahzoo"
}

VO、DTO、BO、PO、DO区别相关推荐

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

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

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

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

  3. PO VO DTO BO区别及用法

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

  4. DTO DAO VO BO PO POJO区别

    1.VO:实际上很模糊,通常指ValueObject和ViewObject 2. ViewObject,界面展现需要的对象,如Struts的FormBean 3.Value Object,早期被作为V ...

  5. Java 中的PO VO DTO BO

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

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

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

  7. VO,DTO,DO,PO区别

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

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

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

  9. 领域驱动模型VO,BO,PO,DO,DTO概念及其区别

    本文来说下领域驱动模型VO,BO,PO,DO,DTO 概念及其区别 文章目录 概述 概念以及区别 本文小结 概述 随着编程工业化水平的不断加深,各种编程模型层出不穷(比如MVC,MVP等等),伴随着这 ...

  10. 一篇文章讲清楚VO,BO,PO,DO,DTO的区别

    随着编程工业化水平的不断加深,各种编程模型层出不穷(比如MVC,MVP等等),伴随着这些编程模型,又有一大批新的概念蜂拥而至,什么VO,BO,PO,DO,DTO之类的,这些新的概念一直以来都是云里雾里 ...

最新文章

  1. UA MATH564 概率论 QE练习题3
  2. 洛谷 P4284 [SHOI2014]概率充电器 解题报告
  3. 国家开放大学2021春1098中学数学教学研究题目
  4. archive for required library...
  5. php下载apk文件源码下载,PHP_php下载文件源代码(强制任意文件格式下载),一个简单的php文件下载源代码 - phpStudy...
  6. matlab 可视化界面,Matlab?的可视化界面设计
  7. 【Machine Learning 一】监督学习与无监督学习
  8. 导入android工程@Override报错
  9. 《软件过程管理》 第一章 软件过程规范
  10. 信鸽推送的集成AndroidStudio版本
  11. 如何在linux下玩lol_英雄联盟新手教程 教你怎么玩lol
  12. 【转】Linux编译程序报错 undefined reference to error 的解决方法
  13. 【Linux系统】第6节 Linux系统压缩与解压缩文件
  14. python运行出现OSError: [WinError 87] 参数错误。
  15. 如何设置Ubuntu键盘输入法框架为fcitx
  16. 微信小程序 录音实现上传 和播放录音
  17. 用OneTab减少Chrome内存消耗
  18. 3D Tiles Next
  19. 代码审计-md5加密相等绕过
  20. 锁存器(latch)、触发器(flip-flop)、寄存器(register)的区别

热门文章

  1. 利用vim 对每行行首增加相同的字符串
  2. Win10+940MX显卡配置PyTorch1.0.0的痛苦经历
  3. 计算机专业知识试题二,计算机基础知识试题库及答案(2)
  4. mysql熔断机制_熔断机制hystrix
  5. 获得CDN牌照之后 北京供销大数据集团准备做些什么?
  6. C++虚函数的作用和实现原理
  7. python爬虫:怎么选择/寻找请求地址
  8. html5blog简单特效代码,个人博客网站背景视觉滚动特效代码
  9. 闪耀暖暖服务器维护,闪耀暖暖服务器进不去
  10. win10计算机右键属性在哪,手把手传授win10系统计算机右键没有属性的方法