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

VO,DTO,BO,PO,DO

​VO(View Object):

视图对象,用于展示层,它的作用是把某个指定页面(或组件)的所有数据封装起来。

DTO(Data Transfer Object):

数据传输对象,这个概念来源于J2EE的设计模式,原来的目的是为了EJB的分布式应用提供粗粒度的数据实体,以减少分布式调用的次数,从而提高分布式调用的性能和降低网络负载,但在这里,更符合泛指用于展示层与服务层之间的数据传输对象。

BO(Business Object):

业务对象,把业务逻辑封装为一个对象,这个对象可以包括一个或多个其它的对象。

PO(Persistent Object):

持久化对象,它跟持久层(通常是关系型数据库)的数据结构形成一一对应的映射关系,如果持久层是关系型数据库,那么,数据表中的每个字段(或若干个)就对应PO的一个(或若干个)属性。

DO:

DO( Data Object)这个等同于上面的PO (阿里开发手册)

DO(Domain Object)这个等同于上面的BO (Domain-Driven Design 领域驱动设计)

区别和联系:

​VO:一般只在controller层,同前端交互,只用于展示数据;
DTO:一般在controller层或者service层,同VO数据基本一致,
一般DTO为原始数据,VO为展示数据,VO可能存在对数据的修改,如“gender”:“男” ->“gender”:“公子”
BO:一般只在service层,业务逻辑对象,对PO的整合数据,不一定完全对应PO
PO:一般只在dao层,持久化对象,对应数据库

示例:
PO:Vm(对应t_vm表) VmDetails(对应t_vm_details表)
VmBo:包含Vm和VmDetails的全部属性
VmDto:同VmBo基本一致,可能不展示部分数据,可能展示部分整合数据
VmVo:同VmDto基本一致,可能不展示部分数据,可能展示部分整合数据

使用时可能不会有全部四层结构:
如 Vo/Dto Bo Po 三层结构
如 Vo/Dto/Bo Po 两层结构

参考:
https://cloud.tencent.com/developer/article/2218031
https://zhuanlan.zhihu.com/p/681606069

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

相关文章:

  • 7.5.3_2处理冲突的方法-开放定址法
  • Redis 分布式锁原理与实战-学习篇
  • 快速搭建系统原型,UI界面,有哪些高效的AI工具和方法
  • PLA/PHA生物降解化妆品包装材料的稳定性与货架期契合性研究
  • 3D人物建模与WebGL渲染实战
  • bmc TrueSight 监控 Oracle 11g 配置
  • Selenium 4.0 + AI:重构自动化测试的智能革命
  • 【大模型问题】ms-swift微调时,显存持续增长原因分析与解决方案
  • Python Bug 修复案例分析:编码问题导致程序出现bug 两种修复方法
  • FSMC控制LCD(TFTLCD:Z350IT002)显示案例
  • CUDA NCU Occupancy学习笔记
  • 触觉智能RK3506核心板/开发板-开源鸿蒙+星闪分享(上)
  • Web Worker 通信封装与实战应用详解
  • .NET Core充血模型
  • go语言 *和
  • 配置自己的NTP 服务器做时间同步
  • HTML炫酷烟花
  • 知乎-AI大模型全栈工程师课程1~12期(已完结)
  • 通义灵码2.5智能体模式实战———集成高德MCP 10分钟生成周边服务地图应用
  • 同城信息发布 app 交流互动系统框架设计
  • WPF 几种绑定 (笔记)
  • maven:迁移到 Maven Central 后 pom.xml的配置步骤
  • pdf转图片(png,jpg)的python脚本
  • 发布 npm 包完整指南(含账号注册、发布撤销与注意事项)
  • 【云计算】云测试
  • 成交量流动策略
  • Unity3D仿星露谷物语开发70之背景音乐
  • 软件测试报告机构如何保障软件质量与安全性?作用有哪些?
  • 使用 PyFluent 自动化 CFD
  • 用 Python 打造立体数据世界:3D 堆叠条形图绘制全解析