仰望天花板 2022-07-17 12:42 采纳率: 54.5%
浏览 93
已结题

Vo 层有存在的必要吗

后端再向前端传送数据时,需要什么就get 什么数据,但是vo 层是为了解决数据库与页面展示数据不一样的,所以有vo层的必要吗?

  • 写回答

7条回答 默认 最新

  • 浅羽技术 浅羽网络工作室官方账号 2022-07-19 23:14
    关注

    首先需要先详细了解下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的原因,严格意义规范的代码是这三者缺一不可的,按规范来长久下来就能更深层次的了解到每个分层的内在设计了。
    希望可以帮到你,如有帮助,希望采纳,感谢🙏

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(6条)

报告相同问题?

问题事件

  • 系统已结题 8月11日
  • 已采纳回答 8月3日
  • 创建了问题 7月17日

悬赏问题

  • ¥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添加后处理以后模型锯齿化严重