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

PO、VO、DAO、BO、DTO、POJO区分

一 分层领域模型规约:

  • DO(Data Object):此对象与数据库表结构一一对应,通过 DAO 层向上传输数据源对象。
  • DTO(Data Transfer Object):数据传输对象,Service 或 Manager 向外传输的对象。
  • BO(Business Object):业务对象,由 Service 层输出的封装业务逻辑的对象。
  • AO(ApplicationObject):应用对象,在Web层与Service层之间抽象的复用对象模型, 极为贴近展示层,复用度不高。
  • VO(View Object):显示层对象,通常是 Web 向模板渲染引擎层传输的对象。
  • Query:数据查询对象,各层接收上层的查询请求。注意超过 2 个参数的查询封装,禁止使用 Map 类来传输。

领域模型命名规约:

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

二 、具体含义

PO (persistant object )持久对象 (ENTITY)

可以看成是与数据库中的表相映射的java对象。使用Hibernate来生成PO是不错的选择

VO (value object) 值对象

通常用于业务层之间的数据传递,PO只能用在数据层,VO用在商业逻辑层和表示层。各层操作属于该层自己的数据对象,这样就可以降低各层之间的耦合,便于以后系统的维护和扩展。

BO (Business Object) 业务对象层

表示应用程序领域内“事物”的所有实体类。这些实体类驻留在服务器上,并利用服务类来协助完成它们的职责。

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

主要用于远程调用等需要大量传输对象的地方。比如我们一张表有100个字段,那么对应的PO就有100个属性。但是我们界面上只要显示10个字段,客户端用WEB service来获取数据,没有必要把整个PO对象传递到客户端,这时我们就可以用只有这10个属性的DTO来传递结果到客户端,这样也不会暴露服务端表结构。到达客户端以后,如果用这个对象来对应界面显示,那此时它的身份就转为VO。

POJO (Plain Old Java Objects) 简单的Java对象

实际就是普通JavaBeans,使用POJO名称是为了避免和EJB混淆起来,而且简称比较直接。其中有一些属性及其getter、setter方法的类,有时可以作为value object或dto(Data Transform Object)来使用。

DAO 数据访问对象
PO 数据访问参数对象
VO 数据访问返回对象
DTO 数据传输对象
BO 业务对象

http://www.lryc.cn/news/69520.html

相关文章:

  • MobPush Flutter平台插件
  • 机器学习面试题库:K-means
  • Linux:文本三剑客之awk
  • 如何借助Kafka持久化存储K8S事件数据?
  • 一种基于非均匀分簇和建立簇间路由的算法的无线传感器网络路由协议(Matlab代码实现)
  • usb摄像头驱动打印信息
  • 银行半结构化和无领导群面注意事项
  • 今天公司来了个拿 30K 出来的测试,算是见识到了基础的天花板
  • SSM整合(单元测试、结果封装、异常处理)
  • C++ list
  • 【JavaScript】ES6新特性(2)
  • CST-FSS/周期谐振单元的仿真
  • 重新理解RocketMQ Commit Log存储协议
  • ROS 开发环境搭建(虚拟机版本)(一)
  • vue3做项目是需要注意的事项
  • docker日志轮转
  • 论文阅读_音频压缩_Encodec
  • 第06章_多表查询
  • 自学黑客(网络安全)有哪些技巧——初学者篇
  • CMD与DOS脚本编程【第四章】
  • Liunx安装Docker
  • docker:容器的数据卷
  • 【TCP】对TCP三次握手的个人理解
  • squid的基本代理
  • 【从零开始写视觉SLAM】v0.1基于特征点的简单VO
  • CentOS-7 安装 MariaDB-10.8
  • Packet Tracer – 对 VLAN 实施进行故障排除 – 方案 1
  • 五、c++学习(加餐1:汇编基础学习)
  • iOS正确获取图片参数深入探究及CGImageRef的使用(附源码)
  • Typescript 5.0 发布:快速概览