DTO、VO、PO的区别

  • Post author:
  • Post category:其他




图示说明

请添加图片描述



DTO



英文全称

Data Transfer Object



定义

DTO是一种设计模式,用于在不同层之间传输数据。它是一个简单的数据容器,通常包含一组属性(数据)以及访问这些属性的方法。



目的

DTO的目的是在不同层(例如,应用程序层、业务逻辑层和数据访问层)之间传递数据,以便解耦和减少通信的开销。



特点

DTO的属性通常与业务实体对象(如数据库实体)相对应,但它们可能只包含业务实体的子集。

DTO还可以用于跨网络传输数据,例如在客户端和服务器之间传递数据。



PO



英文全称

Persistent Object,PO是持久化对象的简称,它是指与数据库表中的记录相对应的对象。



定义

PO通常是在数据访问层或持久层中使用的对象,用于表示数据库中的实体。



特点

它们与数据库表的结构密切相关,并且通常包含与数据库字段——对应的属性。

PO对象用于封装数据访问逻辑,并提供与数据库的交互方法,例如保存、更新和删除数据等。

在一些持久化框架(如Hibernate)中,PO对象也可以自动映射到数据库表。



VO



英文全称

View Objet,视图层传的数据的模型。



定义

它是一种在软件开发中表示值的对象。它是一种不可变对象,通常包含一组相关的属性,用于表示某个特定的值或概念。



目的

主要目的是封装一些数据,并将其作为单个不可变实体进行传递和使用。



共同点

DTO和PO是常见的缩写,用于描述在软件开发中传递数据的不同方式。



不同点



DTO

DTO:主要用于在不同层之间传输数据,旨在解耦和减少通信开销。

DTO可以包含与业务实体对象相关的属性的子集,以便满足特定的传输需求。



PO

PO:主要用于表示数据库中的实体,与数据库表的结构密切相关,并提供与数据库的交互方法。

PO对象通常在数据访问层或持久层中使用,用于封装数据访问逻辑。



VO

VO:一个值对象,用于封装某个特定值或概念。

它通常具有不可变性和值语义,并用于封装业务领域中的特定概念。



具体分析

在这里插入图片描述

当有不同的端(手机、PC、H5等等)调用的时候,可能存在使用的属性个数不同的情况,这时需要定义多个VO和对应的Controller接口。当只有一个端调用的时候,可以不使用VO,使用DTO即可。


参考资料



学成在线-接口定义



版权声明:本文为qq_46130027原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。