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

po、dto、vo的使用场景

现在项目中有两类模型类:DTO数据传输对象、PO持久化对象,DTO用于接口层向业务层之间传输数据,PO用于业务层与持久层之间传输数据,有些项目还会设置VO对象,VO对象用在前端与接口层之间传输数据,如下图:

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

比如:

课程列表查询接口,根据需求用户在手机端也要查询课程信息,此时课程查询接口是否需要编写手机端和PC端两个接口呢?如果用户要求通过手机和PC的查询条件或查询结果不一样,此时就需要定义两个Controller课程查询接口,每个接口定义VO对象与前端传输数据。

手机查询:根据课程状态查询,查询结果只有课程名称和课程状态。

PC查询:可以根据课程名称、课程状态、课程审核状态等条件查询,查询结果也比手机查询结果内容多。

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

如下图:

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

如下图:


http://www.kler.cn/a/371247.html

相关文章:

  • vue使用prototype
  • 如何使用python完成最简单的数据预测?
  • 计算机网络IP地址分类,子网掩码,子网划分复习资料
  • 重学SpringBoot3-怎样优雅停机
  • 多端项目开发全流程详解 - 从需求分析到多端部署
  • .NET Core WebApi第5讲:接口传参实现、数据获取流程、204状态码问题
  • 原创作品——GIS和监控软件设计
  • 安卓13默认连接wifi热点 android13默认连接wifi
  • VSCode Qt6安装OpenSSL
  • Codeforces Round 946 (Div. 3) G. Money Buys Less Happiness Now(反悔贪心)
  • Kafka的羊群效应
  • 基于微信小程序的音乐播放器系统
  • 〈壮志凌云:独行侠〉中的超高音速战机
  • vue3+ant design vue实现表格数据‘是‘‘否‘展示
  • 算法练习:LCR 179. 查找总价格为目标值的两个商品
  • mysql上课总结(1)(mysql中的常见的存储引擎)(面试)
  • Python Transformer 模型的基本原理:BERT 和 GPT 以及它们在情感分析中的应用
  • 【测试平台】打包 子节点ios环境配置
  • 一道巧妙的卡特兰数建模
  • 【Postfix】Docker Postfix中继服务的实践与优化
  • SpringBoot技术在商场应急管理中的创新应用
  • Python | Leetcode Python题解之第519题随机翻转矩阵
  • 四、Prompt工程——简单应用
  • vscode和pycharm在当前工作目录的不同|python获取当前文件目录和当前工作目录
  • js 获取当前时间与前一个月时间
  • 015:地理信息系统开发平台ArcGIS Engine10.2与ArcGIS SDK for the Microsoft .NET Framework安装教程