·设为首页收藏本站📧邮箱修改🎁免费下载专区💎积分购买✅卡密充值📒收藏夹🎖️众筹悬赏👽聊天室
DZ插件网 门户 网站安全 查看内容

真的有必要定义VO,BO,PO,DO,DTO吗?

2023-8-2 21:39| 发布者: 婷姐| 查看: 94344| 评论: 0

摘要: 了解VO,BO,PO,DO,DTO的定义及在项目中的应用,有助于提高程序可扩展性、可维护性与可阅读性。学习更多关于这些实体传输对象的知识,可以帮助优化项目的业务逻辑和数据传输效率。探索如何利用这些对象来优化项目开发流程和团队协作,以实现更好的经济效益。
真的有必要定义VO,BO,PO,DO,DTO吗?5405 作者: 来源: 发布时间:2023-8-2 21:39
mall学习教程官网:macrozheng.com

大家好,今天给大家带来一篇关于VO,BO,PO,DO,DTO的文章,阅读完这篇文章之后,希望大家对VO,BO,PO,DO,DTO有自己的见解。

真的有必要定义VO,BO,PO,DO,DTO吗?2921 作者: 来源: 发布时间:2023-8-2 21:39
VO,BO,PO,DO,DTO

基于 SpringBoot + Vue + uni-app 实现的全套电商系统来了,能支持完整的订单流程!最近mall项目发布了大家期待已久的前台商城系统视频教程,具体可以参考下文。
  • mall前台商城系统正式发布,支持完整订单流程!
  • mall视频教程来了,主流Java技术一网打尽!

概念


在讲具体的概念之前,我们先简单的讲一讲我们MVC开发模式。

MVC的简单定义:

M层负责与数据库打交道;

C层负责业务逻辑的编写;

V层负责给用户展示(针对于前后端不分离的项目,不分离项目那种编写模版的方式,理解V的概念更直观)。

而我们今天要说的VO,BO,PO,DO,DTO呢,就是穿梭在这M、V、C层之间的实体传输对象

真的有必要定义VO,BO,PO,DO,DTO吗?8596 作者: 来源: 发布时间:2023-8-2 21:39
实体传输对象示意图
  • VO(View Object):视图对象,用于展示层,它的作用是把某个指定页面(或组件)的所有数据封装起来。
  • DTO(Data Transfer Object):数据传输对象,这个概念来源于J2EE的设计模式,原来的目的是为了EJB的分布式应用提供粗粒度的数据实体,以减少分布式调用的次数,从而提高分布式调用的性能和降低网络负载,但在这里,更符合泛指用于展示层与服务层之间的数据传输对象。
  • BO(Business Object):业务对象,把业务逻辑封装为一个对象,这个对象可以包括一个或多个其它的对象。
  • PO(Persistent Object):持久化对象,它跟持久层(通常是关系型数据库)的数据结构形成一一对应的映射关系,如果持久层是关系型数据库,那么,数据表中的每个字段(或若干个)就对应PO的一个(或若干个)属性。
  • DO(Domain Object):领域对象,就是从现实世界中抽象出来的有形或无形的业务实体。

有必要用吗?


项目中真的有必要定义VO,BO,PO,DO,DTO吗?

还是要理性看待这个问题,要看我们项目“目的地”是什么。

如果项目比较小,是一个简单的MVC项目,又是单兵作战,我不建议使用VO,BO,PO,DO,DTO,直接用POJO负责各个层来传输就好,因为这种项目的“目的地”是快速完成。

而我们更多的时候,是持续迭代的团队协作项目,这个时候我们就建议用VO,BO,PO,DO,DTO,而且团队内要达成共识,形成一个标准规范
  1. 业务复杂,人员协同性要求高的场景下,这些规范性的东西不按着来虽然不会出错,程序照样跑,但是遵守规范会让程序更具扩展性和可读性;
  2. 让类语义更明确,很容易知道类的含义;

其实就是提升项目的可扩展性可维护性可阅读性

提升这些性能的尽头是经济效益

总结


这篇文章很短,最后稍微总结一下,不管用哪种方式,只要团队内定义好一种适应的协同规范就行。

没有一个绝对好绝对坏的方式方法。

团队规范的尽头能提升项目的可扩展性可维护性可阅读性,从而降低bug率。

另附这些概念命名规范:
  • 数据对象:xxxPO,xxx即为数据表名。(也可DO)
  • 数据传输对象:xxxDTO,xxx为业务领域相关的名称。
  • 展示对象:xxxVO,xxx一般为网页名称。
  • 业务对象:xxxBO,xxx是业务名称。


Github上标星60K的电商实战项目,出 视频教程(2023最新版) 了!全套教程基于SpringBoot 2.7版本,可以说内容非常新!全套教程约40小时,共100期,通过这套教程你可以拥有一个完整的项目经验,同时提高自己独立开发一个项目的能力,感兴趣的小伙伴可以扫描下图二维码加入学习。

真的有必要定义VO,BO,PO,DO,DTO吗?7525 作者: 来源: 发布时间:2023-8-2 21:39

整套视频教程的内容还是非常完善的,涵盖了mall项目最佳学习路线、整体框架搭建、业务与技术实现全方位解析、线上Docker环境部署等内容,具体大纲可以参考下图,你也可以点击 mall视频教程 了解更多内容。

真的有必要定义VO,BO,PO,DO,DTO吗?6553 作者: 来源: 发布时间:2023-8-2 21:39

推荐阅读

  • Github标星60K!mall电商实战项目出视频教程了,主流Java技术一网打尽!
  • Github标星60K!mall前台商城系统正式发布,支持完整订单流程!
  • 我的网站又又又升级了!
  • 大家期待已久的mall视频教程,可以试看了!
  • 新入职一家公司,接手了个从零开始的项目,好难!
  • 大家期待已久的mall视频教程,目前进度如何了?


真的有必要定义VO,BO,PO,DO,DTO吗?3320 作者: 来源: 发布时间:2023-8-2 21:39


上一篇:CSDN网页内容复制技巧
下一篇:那是啥??果壳收到了一份奇怪的快递!

鲜花

握手

雷人

路过

鸡蛋

评论

您需要登录后才可以发表言论 登录立即注册
创宇盾启航版免费网站防御网站加速服务
投诉/建议联系

discuzaddons@vip.qq.com

未经授权禁止转载,复制和建立镜像,
如有违反,按照公告处理!!!
  • 联系QQ客服
  • 添加微信客服

联系DZ插件网微信客服|最近更新|Archiver|手机版|小黑屋|DZ插件网! ( 鄂ICP备20010621号-1 )|网站地图 知道创宇云防御

您的IP:3.145.18.228,GMT+8, 2024-9-19 10:08 , Processed in 0.185506 second(s), 42 queries , Gzip On, Redis On.

Powered by Discuz! X5.0 Licensed

© 2001-2024 Discuz! Team.

关灯
扫一扫添加微信客服
QQ客服返回顶部
返回顶部