分层领域模型规约:

  • DO( Data Object):与数据库表结构一一对应,通过DAO层向上传输数据源对象。就是从现实世界中抽象出来的有形或无形的业务实体。
  • DTO( Data Transfer Object):数据传输对象,主要用于远程调用等需要大量传输对象的地方,比如我们有一个交易订单表,含有 25 个字段,那么其对应的 PO 就有 25 个属性,但我们的页面上只需要显示 5 个字段,因此没有必要把整个 PO 对象传递给客户端,这时我们只需把仅有 5 个属性的 DTO 把结果传递给客户端即可,而且如果用这个对象来对应界面的显示对象,那此时它的身份就转为 VO。使用 DTO 的好处有两个,一是能避免传递过多的无用数据,提高数据的传输速度;二是能隐藏后端的表结构。常见的用法是:将请求的数据或属性组装成一个 RequestDTO,再将响应的数据或属性组装成一个 ResponseDTO.
  • BO(Business Object):业务层对象,是简单的真实世界的软件抽象,通常位于中间层。BO 的主要作用是把业务逻辑封装为一个对象,这个对象可以包括一个或多个其它的对象。举一个求职简历的例子,每份简历都包括教育经历、项目经历等,我们可以让教育经历和项目经历分别对应一个 PO,这样在我们建立对应求职简历的 BO 对象处理简历的时候,让每个 BO 都包含这些 PO 即可。
  • VO( View/value Object):显示/值对象,通常用于业务层之间的数据传递,和 PO 一样也是仅仅包含数据而已,但 VO 应该是抽象出的业务对象,可以和表对应,也可以不对应,这根据业务的需要。 如果锅碗瓢盆分别为对应的业务对象的话,那么整个碗柜就是一个值对象。此外,VO 也可以称为页面对象,如果称为页面对象的话,那么它所代表的将是整个页面展示层的对象,也可以由需要的业务对象进行组装而来。
  • QO(Query Object):数据查询对象,各层接收上层的查询请求。 注意超过2个参数的查询封装,禁止使用Map类来传输。
  • PO(persistant object): 持久对象它是由一组属性和属性的get和set方法组成,最简单的 PO 就是对应数据库中某个表中的一条记录(也就是说,我们可以将数据库表中的一条记录理解为一个持久层对象),多个记录可以用 PO 的集合,PO 中应该不包含任何对数据库的操作。PO 的属性是跟数据库表的字段一一对应的,此外 PO 对象需要实现序列化接口。

  • DAO(Data Access Object):数据访问对象,它是一个面向对象的数据库接口,负责持久层的操作,为业务层提供接口,主要用来封装对数据库的访问,常见操作无外乎 CURD。我们也可以认为一个 DAO 对应一个 POJO 的对象,它位于业务逻辑与数据库资源中间,可以结合 PO 对数据库进行相关的操作。

  • POJO( Plain Ordinary Java Object): POJO专指只有setter/getter/toString的简单类,包括DO/DTO/BO/VO等。

领域模型命名规约:

  • 数据对象:xxxDO,xxx即为数据表名。
  • 数据传输对象:xxxDTO,xxx为业务领域相关的名称。
  • 展示对象:xxxVO,xxx一般为网页名称。
  • POJO是DO/DTO/BO/VO的统称,禁止命名成xxxPOJO。

VO、 PO、DO、DTO、 BO、 QO、DAO、POJO定义相关推荐

  1. VO,PO,BO,QO, DAO ,POJO,的概念

    原文链接:http://www.blogjava.net/luofeng225/archive/2009/03/28/262620.html 原文作者令我非常感动的一个故事: <我曾经听到这么一 ...

  2. 在Java中VO , PO , BO , QO, DAO ,POJO是什么意思

    在Java中VO , PO , BO, DAO ,POJO是什么意思 最近在项目中,遇到VO,我的天...那就一起学习回忆一下 首先简单说明下: O/R  Mapping是Object Relatio ...

  3. po是什么意思java_在Java中VO , PO , BO , QO, DAO ,POJO是什么意思

    在Java中VO , PO , BO, DAO ,POJO是什么意思 最近在项目中,遇到VO,我的天...那就一起学习回忆一下 首先简单说明下: O/R  Mapping是Object Relatio ...

  4. 阐述简称PO,VO,TO,BO,DAO,POJO

    PO(persistant object) 持久对象  在o/r映射的时候出现的概念,如果没有o/r映射,没有这个概念存在了.通常对应数据模型(数据库),本身还有部分业务逻辑的处理.可以看成是与数据库 ...

  5. java中VO、PO、DTO 、DO、POJO、BO、TO

    PO(persistant object) 持久对象 在 o/r 映射的时候出现的概念,如果没有 o/r 映射,没有这个概念存在了.通常对应数据模型 ( 数据库 ), 本身还有部分业务逻辑的处理.可以 ...

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

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

  7. entity、bo、vo、po、dto、pojo、dao、service、controler如何理解和区分?

    dao层: DAO层叫数据访问层,全称为data access object,属于一种比较底层,比较基础的操作,具体到对于某个表的增删改查,也就是说某个DAO一定是和数据库的某一张表一一对应的,其中封 ...

  8. VO BO PO DO DTO DAO POJO概念及区别

    VO BO PO DO DTO DAO POJO 概念及区别 1.VO( value object) 即值对象 VO就是展示用的数据,不管展示方式是网页,还是客户端,还是APP,只要是这个东西是让人看 ...

  9. PO/DO/DTO/VO/BO/POJO/DAO解释

    1.PO(persistant object) 持久对象 PO 就是对应数据库中某个表中的一条记录,多个记录可以用 PO 的集合.PO 中应该不包 含任何对数据库的操作. 2.DO(Domain Ob ...

最新文章

  1. 采用的php cms分校站点 打开特别慢,phpcms v9 打开网站特别慢 增加数据库缓存方法...
  2. tensorflow随笔-条件循环控制(2)
  3. sharding jdbc根据年月分表
  4. 谈谈用SQLite和FMDB而不用Core Data
  5. MFC CStringArray 字符串数组类 使用方法
  6. firebase登录验证_如何使用Firebase通过三步向身份验证本机添加身份验证
  7. 【Flink】Flink Committing offsets to Kafka takes longer than the checkpoint interval
  8. Android内容提供者(读取手机联系人信息)
  9. u大师u盘装系统win7_怎么用u盘装win7系统
  10. django 静态文件的配置 orm 中 字段与数据的增删改查 使用MySQL数据库
  11. 【VirtualBox】VirtualBox的四种网络连接模式
  12. Mac 迅雷限速问题
  13. 组合逻辑电路:一位全减器设计
  14. 计算机网络技术摘要,计算机网络论文摘要
  15. 基于CentOS7操作cobbler批量装机-(centos7和redhat8)
  16. Oldboy_day01 Python的历史,变量\常量\数据类型\用户交互\流程控制\循环while
  17. 运动耳机哪种比较好用、最好用的运动耳机
  18. Silverlight教程第五部分:用 ListBox 和 DataBinding 显示列表数据 (木野狐译)
  19. 装箱问题c语言函数,C语言基于贪心算法解决装箱问题的方法
  20. 常用vi编辑器命令行

热门文章

  1. matlab 行 读取文件 跳过_MATLAB对于文本文件(txt)数据读取的技巧总结(经典中的经典)...
  2. JavaSE基础知识(十八)--Java多态之向上转型(多态初步)
  3. android 按钮添加图片并靠左显示
  4. 在线剪切板,一款高效方便记录剪切板内容的在线工具
  5. 关于阿里巴巴编码规范(Java)认证
  6. 淫欲的真相是什么呢?可能很多英雄豪杰都没有想到过
  7. 第十七届全国大学生智能汽车竞赛讯飞-家庭服务机器人挑战赛全国选拔赛规则
  8. 客官,来看看AspNetCore的身份验证吧
  9. 【飞机票售票系统】山东大学大二暑期数据库课程设计项目SSM+VUE2前后端分离(含源码)
  10. 一种Android应用耗电定位方案