图示说明
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即可。
参考资料
:
学成在线-接口定义