当前位置: 首页 > news >正文

VO、DTO、BO、PO、DO区别

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"
}
http://www.lryc.cn/news/14589.html

相关文章:

  • 速看!!!一套能直接拿捏大厂面试官的软件测试面试宝典
  • 超级完整 的 Maven 讲解 以及私服搭建
  • 数据结构之算法的时间复杂度和空间复杂度
  • 【微信小程序】使用页面跳转并携带多个特定参数
  • CVPR 2021 | Involution:超越convolution和self-attention的神经网络算子
  • 11 OpenCV图像识别之人脸识别
  • ssh设置:免密登入、修改默认端口、禁止root登入、限制错误登入次数
  • 【Fastdfs】| 入门连续剧——安装
  • 【ESP32-S3】Pycharm 使用 microPython 教程(避坑)
  • Allegro如何通过报表的方式检查单板上是否有假器件操作指导
  • 清理bib文件(删除重复项,仅保留tex中引用的条目)
  • Rust编程细节知识点拾遗
  • 【Linux】线程池
  • 运动版蓝牙耳机什么牌子的好、运动款蓝牙耳机推荐
  • MySQL中自带的数据库表相关介绍
  • 【微信小程序】--注册小程序账号(一)
  • Java多线程 - 利用Callable或CompletableFuture实现多线程异步任务执行
  • 【ts + webpack】贪吃蛇小游戏
  • 传统巨头生“变”,中国毫米波雷达市场战火再升级
  • 26岁曾月薪15K,现已失业3个月,我依然没有拿到offer......
  • 华为OD机试 - 打印文件 | 机试题算法思路 【2023】
  • 【前端】浏览器的渲染流程(完整)
  • 华为OD机试 - 有效子字符串 | 机试题算法思路 【2023】
  • 抽象类和接口
  • STM32DSP库汇总
  • C++类和对象----思想基础应用
  • ​力扣解法汇总1792. 最大平均通过率
  • 动手学深度学习(第二版)学习笔记 第二章
  • CMake构建静态库与动态库以及使用
  • Linux 系统目录结构