简述VO(View Object,视图对象)、DTO(Data Transfer Object,数据传输对象)、PO(Persistent Object,持久化对象)

文章介绍了VO(视图对象)、DTO(数据传输对象)和PO(持久化对象)在项目中的作用。VO用于前端和接口层之间的数据传输,DTO用于接口层到业务层的数据传输,而PO则用于业务层和持久层之间的数据交互。当面对不同平台(如Android、Windows、Pad)有不同的查询需求时,可能需要定义不同的VO来适应接口差异。在某些情况下,如果前端接口需求固定,可以仅使用DTO。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 简述 VO、DTO、PO

项目中通常有3个模型类,VO(View Object,视图对象)、DTO(Data Transfer Object,数据传输对象)、PO(Persistent Object,持久化对象),VO用在前端与接口层之间传输数据,DTO用于接口层向业务层之间传输数据,PO用于业务层与持久层之间传输数据。

当前端有多个平台且接口存在差异时就需要设置VO对象用于前端和接口层传输数据。

图示:

如果用户要求通过AndroidWindowsPad的查询条件或查询结果不同此时就需要定义三个Controller查询接口,每个接口定义VO对象与前端传输数据

  • Android:需要根据d1,d2查询。
  • Windows:需要根据d1,d2,d3查询
  • Pad:需要根据d1,d2,d3,d4查询

在这里插入图片描述

此时,Service业务层尽量提供一个业务接口,即使三个前端接口需要的数据不一样,Service可以提供一个最全查询结果,由Controller进行数据整合。

在这里插入图片描述

如果前端的接口没有多样性且比较固定,此时可以取消VO,只用DTO即可。

图示:

在这里插入图片描述



评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CodeJiao

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值