✅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 用于表示前端页面显示的数据。使用这三个对象可以有效地组织应用程序的数据模型,并且提高了应用程序的可维护性和可扩展性。

扩展知识

举一个简单的例子,假设我们有一个 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 在不同的场景下有着不同的用途,它们分别用于表示实体对象、传输数据以及前端页面显示的数据,有利于对应用程序的数据模型进行有效组织,提高了应用程序的可维护性和可扩展性。

原文: https://www.yuque.com/hollis666/xkm7k3/qhd931crclc48pq5