MVC框架里的几种对象

        Java语言是一门面向对象的编程语言,所有都用类表达,入口都是一个类,没有独立的main()函数,类的实例化就是对象。

        简单来讲类包括数据和方法,方法就是操作,是实现业务逻辑的地方,常常是需要写大块代码的,时时被提醒不要写太多代码。

        有一种类,我们主要是定义数据结构的,数据字段都是private类型的,方法仅限getXXX()和setXXX()来存取数据,不写任何业务逻辑,这种类常常叫它JavaBean, 有时也叫它POJO, 简单Java对象。等等,怎么一个类叫XXX对象?我也没有去考古,反正大家都这么叫,还有如下几个更常见常用的:

        VO: 视图对象View Object/值对象value object。

        BO: 业务对象Business Object。

        PO: 持久层对象Persistant Object。

        DTO: 数据传输对象Data Transfer Object。

        上图是在MVC框架里这集中对象所处的位置,当然这仅仅是我自己喜欢用的方式,并不是什么标准,也没考究什么是标准。

        MVC框架主要是从技术角度去分层的,controller和service这两层一般都这么命名和设计,而持久化层早期用dao居多,现在用repository来命名,叫什么包名不是太重要,主要是分层清晰,结构清晰严密。当然也不能取一个乖乖的名字,大家都不明白是什么,不利于可读性。

        如果是从包的定义来讲,上图表达是不对的,我只是强调VO和DTO主要在controller层使用,BO在service层使用,PO在repository使用。是主要,但常常传参界限是模糊的,不用纠结,主要在于它的作用和目的。

        所以我们在实际项目里,可以看到包名:controller, service, repositoy, vo, bo, dto, po, bean, pojo, entity等。我们集中在这些包里定义同一类型的类,不管这个系统里有多少业务流程。

        定义的地方我们一般不会错,但是使用,至少我们不能在controller里大量使用PO吧,直接把表数据不加过滤的全部返回给前端系统,我们之所以不怕麻烦的定义这么多类,目的是什么,为什么,这是开发人员要去思考的,而不是简单的模仿。

        

        

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/770770.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Facebook是什么?有什么功能?如何利用Facebook运营?

Facebook,也常被人们称为“脸书”、“脸谱”等,是美国的社交网络服务及社会化媒体网站,拥有超过20亿的月活跃用户,对于众多商家而言,Facebook以其广泛的用户基础和强大的社交影响力,成为了一个理想的社媒营…

视频推拉流EasyDSS点播平台云端录像播放异常的问题排查与解决

视频推拉流EasyDSS视频直播点播平台可提供一站式的视频转码、点播、直播、视频推拉流、播放H.265视频等服务,搭配RTMP高清摄像头使用,可将无人机设备的实时流推送到平台上,实现无人机视频推流直播、巡检等应用。 有用户反馈,项目现…

2.7、创建列表(List)

概述 列表是一种复杂的容器,当列表项达到一定数量,内容超过屏幕大小时,可以自动提供滚动功能。它适合用于呈现同类数据类型或数据类型集,例如图片和文本。在列表中显示数据集合是许多应用程序中的常见要求(如通讯录、…

LeetCode 面试经典150题 392.判断子序列

题目: 给定字符串 s 和 t ,判断 s 是否为 t 的子序列。 字符串的一个子序列是原始字符串删除一些(也可以不删除)字符而不改变剩余字符相对位置形成的新字符串。(例如,"ace"是"abcde"…

基于深度学习的OCR,如何解决图像像素差的问题?

基于深度学习的OCR技术在处理图像像素差的问题时确实面临一定的挑战。图像像素差可能导致OCR系统无法准确识别文本,从而影响其精度和可靠性。尽管已经有一些方法如SRN-Deblur、超分SR和GAN系列被尝试用于解决这个问题,但效果并不理想。然而,这…

安防监控视频汇聚平台EasyCVR在银河麒麟V10系统中的启动异常及解决方法

安防监控视频平台EasyCVR具备较强的兼容性,它可以支持国标GB28181、RTSP/Onvif、RTMP,以及厂家的私有协议与SDK,如:海康ehome、海康sdk、大华sdk、宇视sdk、华为sdk、萤石云sdk、乐橙sdk等。平台兼容性强,支持Windows系…

容器镜像加速指南:探索 Kubernetes 缓存最佳实践

介绍 将容器化应用程序部署到 Kubernetes 集群时,由于从 registry 中提取必要的容器镜像需要时间,因此可能会出现延迟。在应用程序需要横向扩展或处理高速实时数据的情况下,这种延迟尤其容易造成问题。幸运的是,有几种工具和策略…

政安晨:【TensorFlow与Keras实战演绎机器学习】专栏 —— 目录

政安晨的个人主页:政安晨 欢迎 👍点赞✍评论⭐收藏 收录专栏: TensorFlow与Keras实战演绎机器学习 希望政安晨的博客能够对您有所裨益,如有不足之处,欢迎在评论区提出指正! 本篇是作者政安晨的专栏《TensorFlow与Keras…

文献阅读笔记(Transformer)

文献阅读笔记(Transformer) 摘要Abstract1、文献阅读1.1 文献题目1.2 文献摘要1.3 研究背景1.4 模型架构1.4.1 Encoder-Decoder1.4.2 注意力机制1.4.3 多头注意力1.4.4 Position-wise Feed-Forward Networks1.4.5 Embeddings and Softmax1.4.6 Positiona…

大小端字节序和字节序的判断+有符号整形和无符号整形的取值范围

大小端存在的意义 大小端字节存储方式(Big-Endian 和 Little-Endian)的存在主要是由于不同计算机体系结构和网络通信标准对数据表示方式的差异所导致的。大小端字节存储方式的存在具有以下意义: 1. 兼容性:不同的计算机系统和网络…

javaWeb网上订餐管理系统

一、简介 在当今社会,随着互联网的普及,网上订餐已经成为了人们生活中不可或缺的一部分。为了方便用户点餐,同时也方便商家管理订单,我设计了一个基于JavaWeb的网上订餐管理系统。该系统分为前台和后台两部分,前台包括…

ChatGPT助力论文写作:详细步骤解析

前言 在论文写作过程中,尽管人工智能工具如ChatGPT能为我们提供有效的辅助,但我们必须铭记,这些工具并不能完全取代我们的思考与判断能力。本指南将详尽地展示如何利用ChatGPT辅助论文写作的全过程,旨在帮助您更高效地完成学术任…

AI基础知识扫盲

AI基础知识扫盲 AIGCLangchain--LangGraph | 新手入门RAG(Retrieval-Augmented Generation)检索增强生成fastGPT AIGC AIGC是一种新的人工智能技术,它的全称是Artificial Intelligence Generative Content,即人工智能生成内容。 …

uniapp的配置文件、入口文件、主组件、页面管理部分

pages.json 配置文件,全局页面路径配置,应用的状态栏、导航条、标题、窗口背景色设置等 main.js 入口文件,主要作用是初始化vue实例、定义全局组件、使用需要的插件如 vuex,注意uniapp无法使用vue-router,路由须在pag…

[NKCTF 2024]web解析

文章目录 my first cms全世界最简单的CTF解法一解法二 my first cms 打开题目在最下面发现是CMS Made Simple,版本为2.2.19 扫一下发现存在后台登陆界面,直接访问 用字典爆破下admin的密码为Admin123 然后直接登录,去漏洞库搜一下其实存在…

后端常问面经之Java集合

HashMap底层原理 HashMap的数据结构: 底层使用hash表数据结构,即数组和链表或红黑树 当我们往HashMap中put元素时,利用key的hashCode重新hash计算出当前对象的元素在数组中的下标 存储时,如果出现hash值相同的key,此…

恒创科技:服务器反应慢如何解决?

​  通常来说,访问者会在最初的几秒钟内决定是留在您的网站还是离开。如果页面加载时间超过五秒,访问者离开的可能性就会增加 90%。所以,作为站长们,必须减少服务器响应时间,以确保其网站加载速度更快。以下是减少网…

Mac电脑虚拟显示器:BetterDisplay Pro for Mac v2.0.11激活版

BetterDisplay Pro是一款由waydabber开发的Mac平台上的显示器校准软件,可以帮助用户调整显示器的颜色和亮度,以获得更加真实、清晰和舒适的视觉体验。 软件下载:BetterDisplay Pro for Mac v2.0.11激活版 以下是BetterDisplay Pro的主要特点&…

蔚来JAVA面试(收集)

先叠加,这个是自己找的答案不一定对,只是给我参考看看而已。 一、项目 这个没有,根据实际项目情况来。蔚来比较喜欢拷打项目,所以要对项目非常熟悉(慌) 二、JAVA基础 2.1 Java中的IO模型有用到过吗&#…

Android视角看鸿蒙第九课-鸿蒙的布局

鸿蒙的四大布局 导读 前面八篇文章描述了鸿蒙app的配置文件,关于版本号,开发版本,桌面图标等等配置方式。从这一篇文章开始学习鸿蒙的UI使用方式。 前面我们学习到鸿蒙有ability和page的区分,ability类似Activity但又不完全一样…