最强菜鸟 2023-03-18 00:03 采纳率: 66.7%
浏览 29
已结题

java开发中的dto与vo理解

请教一个问题,在做java开发的时候,前端给后端传参数,后端是用vo接收还是用dto接收,咨询了很多身边的做java开发的朋友,结果是两种答案都有,一半一半,本人参考了阿里的开发规范和,简单学了一下领域驱动模型的设计,个人理解是数据传输对象dto,用于后端数据的传输,所有在后端进行数据传输的,包括服务调用也好,都是用dto,数据实体用entity,最终给前端展示数据的才用视图对象vo,至于其他的什么bo之类的,由于平时的项目没那么庞大,暂不去考虑,请教一下大家是怎么去理解的?

  • 写回答

3条回答 默认 最新

  • 追cium 2023-03-18 01:16
    关注

    参考GPT和自己的思路:

    首先,根据你的描述,个人认为使用DTO更加合适。DTO是一种用于数据传输的对象,主要用于将数据从一个层传输到另一个层,避免直接操作实体对象带来的一些问题。DTO通常会包含一些实体对象的部分属性,以便进行更有效的传输,这与VO的设计目的有些不同,VO主要用于将一些或全部实体对象的属性展示给用户,而不是传输数据。

    另外,你提到的领域驱动设计中的实体对象和BO,通常用于表示业务领域中的实体和操作。在传输数据时,通常还需要使用一些中间对象(例如DTO)来将复杂的业务实体转换为较轻量级的数据传输对象,以便在不同的层之间传输数据。因此,DTO和VO之间的区别可以看作是在实体对象和用户接口之间增加了一种中间层,用于控制数据传输的方式和内容。

    总结而言,在Java开发中,使用DTO进行数据传输是很常见的做法,因为它带来了更好的效率和可控性。而使用VO主要是为了将实体对象的子集或全部属性用于呈现给UI用户,跟传输数据无关。建议在设计模式中进行综合考量,根据实际需要和开发团队的约定来选择合适的对象。

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

报告相同问题?

问题事件

  • 系统已结题 3月26日
  • 已采纳回答 3月18日
  • 创建了问题 3月18日

悬赏问题

  • ¥20 机器学习能否像多层线性模型一样处理嵌套数据
  • ¥20 西门子S7-Graph,S7-300,梯形图
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题
  • ¥15 matlab不知道怎么改,求解答!!
  • ¥15 永磁直线电机的电流环pi调不出来
  • ¥15 用stata实现聚类的代码
  • ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效