后端再向前端传送数据时,需要什么就get 什么数据,但是vo 层是为了解决数据库与页面展示数据不一样的,所以有vo层的必要吗?
7条回答 默认 最新
关注 首先需要先详细了解下vo、po、dto三者的主要区别,然后就会知道为什么要这么设计了:
VO是视图层对象,作用是给视图页面的数据封装。
PO呢?是持久层对象,作用就是跟持久层的数据作一一对应的关系,相当于一张表一个类,每张表的字段就是每个PO类的属性;
DTO呢?是数据传输对象,主要用于数据传输,比如我们有一个表,含有十几个字段,那么对应的 PO 就有十几个属性,
但我们只需要5 个字段,因此没有必要把整个 PO 对象传递过去,我们只需把5 个属性的 DTO 把结果传递过去即可;
这三个对象实际应用我举个例子你就很好理解了:
比如一个用户在页面操作数据,发出了一个请求。
刚开始数据在页面上展示时候均为VO;VO 的数据是跟页面一一对应。
VO在传到服务层之前,需要将VO转换成DTO再传给服务层。这里转DTO原因之前说了,比如页面有几十个字段,我只要其中几个。没有必要全部给我,所以是转DTO来传输。
然后根据DOT传过来的数据,我们会构造出一个BO,也就是业务逻辑对象,一般在Business这个包。在BO这一段我们会完成具体的业务逻辑。业务逻辑完成后,数据你需要更新到数据库吧?
所以,此时BO的数据就需要转换成对应的PO,因为一个PO对应一张表,所以需要用PO去完成数据的持久化。
这就是整个前端到数据库的流程,也是为什么要设计vo、dto、po的原因,严格意义规范的代码是这三者缺一不可的,按规范来长久下来就能更深层次的了解到每个分层的内在设计了。
希望可以帮到你,如有帮助,希望采纳,感谢🙏本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 请问有人会紧聚焦相关的matlab知识嘛?
- ¥15 网络通信安全解决方案
- ¥50 yalmip+Gurobi
- ¥20 win10修改放大文本以及缩放与布局后蓝屏无法正常进入桌面
- ¥15 itunes恢复数据最后一步发生错误
- ¥15 关于#windows#的问题:2024年5月15日的win11更新后资源管理器没有地址栏了顶部的地址栏和文件搜索都消失了
- ¥100 H5网页如何调用微信扫一扫功能?
- ¥15 讲解电路图,付费求解
- ¥15 有偿请教计算电磁学的问题涉及到空间中时域UTD和FDTD算法结合的
- ¥15 three.js添加后处理以后模型锯齿化严重