VO、DO、DTO的区别

news/2025/3/29 5:17:33/

概念

在日常开发中,VO对应页面上需要显示的数据(表单),DO对应数据库中存储的数据(数据库表),DTO对应除了前面两种之外的其它需要传递的数据。

DTO和VO的异同

DTO和VO一样,都是在实体的基础上增加,减少字段,加入自己的判断逻辑,隐藏表结构等,当他可以返回给页面(这时就变成了VO),也可以用于服务之间,系统之间的交互,相互调接口之类。

为什么需要引入这些概念?

也许很多人会问,为什么不能只用一个DO,要分这么多数据类型呢?其实我们可以想一想,假如项目中只有一个DO,会出现哪些问题呢?

  • 不需要展示在前端页面的字段也会传递到前端。
    比如像password、status这样的字段我们可能不需要展示在前端,但是这些字段有可能也会被传递到前端,这不仅使数据的传输量增大,还可能出现安全性问题。
  • 某些字段需要转换,但是无法支持。
    比如有一个性别的字段,我们在数据库中可能存储的是数字,但是在前端页面却需要展示对应的中文,这种情况下只能在前端通过if/else的方式来分情况展示。
  • 某些字段要展示,但是不希望出现在数据库中。
    有时,我们可能需要返回给前台一些额外的字段,但是一个DO只能表示一张表,这个时候就需要有一个VO来增加额外的字段存储需要显示这个额外的字段。

http://www.ppmy.cn/news/428031.html

相关文章

VO、DTO、DO、PO 概念及其区别

领域模型中的实体类分为四种模型:VO、DTO、DO、PO,各种实体类用于不同业务层次间的交互,并会在层次内实现实体类之间的转化。 VO (View Object)视图对象 用于展示层,它的作用是把某个指定页面(或…

BO,PO,VO,DTO的区别

由于项目要求VO,BO等互相转型,但是查了很多都是瞎说一同,最近看了一下阿里巴巴Java开发手册,感觉还是阿里的老哥们说的明白,这里分享一下。 1.应用分层 这里首先了解一下应用分层 这里可以看到是我们大部分mvc架构的分层情况&…

VO BO PO DO DTO POJO和ORM 区别

VO BO PO DO DTO和POJO的区别 不同的需求,根据不同场景使用不同的Entity实体类,通常简单的场景直接使用POJO; VOvalue object 值对象/表现层对象 是在表现层后端数据返回给前端页面BOBusiness Object业务层对象是在业务层进行使用的Java对象…

VO、BO、PO、DO、DTO的区别

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

dynamic proposa

又一个自称厉害的哦~~ 大伙去试试把 论文地址:https://arxiv.org/pdf/2207.05252.pdf 动态候选较大程度提升检测精度的高效目标检测 目标检测是一项基本的计算机视觉任务,用于对给定图像中的目标进行定位和分类。 大多数最先进的检测方法利用固定数量…

dto do po vo 区分

1、实体 实体与我们都数据库表是一一对应的,实体中的每个字段与表中的字段也是一一对应的。 2、do 接收应用层传给domain层的参数(也可以用实体接收)。 domain层接收的参数必须是在domain层存在的对象 3、po domain层返回应用层结果,使用po(也可以用…

VO、DTO、DO、PO的区别和用处

VO、DTO、DO、PO的区别和用处 一、VO、DTO、DO、PO概念二、VO与DTO的区别和应用三、DTO与DO的区别和应用四、DO与PO的区别和应用五、更细分还有BO、AO、POJO、DAO 一、VO、DTO、DO、PO概念 VO(View Object):视图对象,用于展示层&…

odoo 关于many2many 和one2many

many2many (0,0,{values}) 根据values里面的信息新建一个记录。 (1,ID,{values})更新idID的记录(写入values里面的数据) (2,ID) 删除idID的数据(调用unlink方法,删除数据以及整个主从数据链接关系) (3,ID) 切断主从…