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

【Java架构基础】DO、DTO、VO 都是干什么的?

DO、DTO、VO 是三个常见的 Java 对象,它们都是用来承载数据的,但是在不同的场景下有着不同的用途。

  1. DO(Domain Object):领域对象,也称为实体对象。
    DO 通常用于数据库表的映射,DO 中包含了实体的属性以及对实体的操作方法。DO 对应的是系统中的数据模型,通常与数据库表一一对应。

  2. DTO(Data Transfer Object):数据传输对象。
    DTO 通常用于在不同层之间传输数据,例如在前端页面和后端服务之间传输数据时使用。DTO 对象封装了要传输的数据,避免了对数据的频繁访问和传输,从而提高了应用程序的性能。

  3. VO(View Object):视图对象,也称为展示对象。
    VO 通常用于表示前端页面显示的数据,例如在 MVC 架构中的 View 层,VO 对应的是用户界面模型,通常与页面一一对应。

总的来说,DO、DTO、VO 都是用来承载数据的对象,它们在不同的场景下有着不同的作用。DO 用于表示实体对象,DTO 用于在不同层之间传输数据,VO 用于表示前端页面显示的数据。使用这三个对象可以有效地组织应用程序的数据模型,并且提高了应用程序的可维护性和可扩展性。

类型全称用途示例
DODomain Object映射数据库表,持久化实体UserDO 对应 user 表
DTOData Transfer Object层间数据传输,如 API 请求/响应UserDTO 用于接口入参/出参
VOView Object前端展示用,可能包含计算字段UserVO 包含昵称、头像、状态等

举一个简单的例子,假设我们有一个 User 实体类,包含了 id、username 和 password 三个属性。下面我们分别定义该实体类的 DO、DTO 和 VO。

UserDO(Domain Object):领域对象,对应数据库中的一条记录:

public class UserDO {private Long id;private String username;private String password;// getter 和 setter 方法
}

UserDO 对象中包含了 id、username 和 password 三个属性,它对应着数据库中的一条记录。

UserDTO(Data Transfer Object):数据传输对象,用于在不同层之间传输数据:

public class UserDTO {private Long id;private String username;// getter 和 setter 方法
}

UserDTO 对象中只包含了 id 和 username 两个属性,用于在不同层之间传输数据,避免了对密码等敏感信息的传输。

UserVO(View Object):视图对象,用于表示前端页面显示的数据:

public class UserVO {private String username;// getter 和 setter 方法
}

UserVO 对象中只包含了 username 属性,用于在前端页面显示用户的用户名,避免了将不必要的数据传输到前端,提高了应用程序的性能和安全性。

通过以上的例子可以看出,DO、DTO 和 VO 在不同的场景下有着不同的用途,它们分别用于表示实体对象、传输数据以及前端页面显示的数据,有利于对应用程序的数据模型进行有效组织,提高了应用程序的可维护性和可扩展性。

http://www.dtcms.com/a/611431.html

相关文章:

  • 安装pandas报错No module named ‘encodings‘根本处理办法
  • 应届生招聘去哪个网站wordpress带投稿模板
  • 哪个公司的网站做的好秦皇岛网站制作的流程
  • 阳泉做网站多少钱wordpress move导入
  • 响应式网站下载网站上怎么做弹目提醒
  • 建设网站的心得体会设计logo去哪里找
  • AI开源应用:Pandas AI(一)
  • 【HarmonyOS 6】SpeechKit中的朗读控件,初始化前不进行窗口舞台的设置,也不会报错,与文档描述不符。
  • 大连旅游网站建设创建全国文明城市的目的
  • 【docker】运行对应服务
  • 做网站哪种编程语言最好公司响应式网站建设报价
  • 临沂网站建设中企动力58网站模板
  • 珠海品牌型网站建设网站设计怎么做链接
  • 哈尔滨无障碍网站建设ui培训费用
  • 如何在Ubuntu虚拟机中设置Samba共享,并在Windows宿主机中挂载为网络驱动器
  • 使用yopmail注册临时邮箱
  • 百度公司可以建设网站网页版哔哩哔哩怎么下载视频
  • 工厂弄个网站做外贸如何建立自己的网站平台的好处
  • 电力系统调度自动化的五遥: 遥信 遥测 遥控 遥调 遥视
  • 怎么做电影网站教程网站页面统计代码
  • 自建网站访问报错坊网站建设
  • 哪些网站可以做画赚钱网页设计学校模板
  • (四)自然语言处理笔记——Fasttext
  • 英集芯-IP5385 IIC通信异常原因深入分析及解决方案 21
  • 营销型企业网站建设哪家好shopex进入网站自动回跳转到别的网站 是否被挂马
  • 手机购买网站源码深圳网站建设培训机构
  • 厦门公司注册网站做导购网站
  • 网站建设是网络工程师吗熊掌号网站改造绑定织梦网站
  • 泉州网站建设公司首选公司软件开发专业属于哪个专业大类
  • 惠州网站搭建找谁免费的舆情网站不需下载