【JavaEE】_MVC架构与三层架构

news/2025/2/2 22:28:19/

目录

1. MVC架构

2. 三层架构

3. MVC架构与三层架构的对比

3.1 MVC与三层架构的对比

3.2 MVC与三层架构的共性


1. MVC架构

 在前文已介绍关于SpringMAC的设计模式,详见下文:

【JavaEE】_Spring Web MVC简介-CSDN博客文章浏览阅读967次,点赞8次,收藏21次。官网对于Spring Web MVC的介绍如下:链接如下:即Spring Web MVC是基于Servlet API构建的原始的Web框架,它从一开始就包含在Spring框架中,通常被称为Spring MVC;Spring Boot 只是一种创建Spring MVC项目的一种方式而已,帮助我们快速搭建项目,Spring Web MVC是其中的一个模块;总而言之,Spring Web MVC就是Spring MVC, 是一个Web框架;https://blog.csdn.net/m0_63299495/article/details/136397828https://blog.csdn.net/m0_63299495/article/details/136397828https://blog.csdn.net/m0_63299495/article/details/136397828https://blog.csdn.net/m0_63299495/article/details/136397828https://blog.csdn.net/m0_63299495/article/details/136397828https://blog.csdn.net/m0_63299495/article/details/136397828简而言之:

SpringMVC就是把整体的系统分成了 Model(模型)、View(视图)和Controller(控制器)三个层次:

也就是将用户视图和业务处理隔离开,并且通过控制器连接起来,实现了表现和逻辑的解耦,是⼀种标准的软件分层架构
随着前后端分离,返回视图逐渐变更为返回前端所需数据;

但此种架构也存在一些问题,model工作量较大,且视图逐渐退出后端设计需要。

所以对于Java后端开发者, ⼜有了⼀种新的分层架构:

把整体架构分为表现层、业务逻辑层和数据层。这种分层方式也称为"三层架构"。

2. 三层架构

“ 三层架构 ” 把整体架构分为表现层、业务逻辑层和数据层:

1、表现层:展示数据结构、接收用户指令(最靠近用户的一层)

2、业务逻辑层:负责进行业务逻辑的具体处理与实现

3、数据层:负责存储、管理与应用程序相关的数据

3. MVC架构与三层架构的对比

3.1 MVC与三层架构的对比

三层架构中业务逻辑层与数据层实现的功能,对标MVC的model,

关于三层架构与MVC的对比如下:

二者并不对立。

MVC架构强调数据与视图分离,将数据展示和数据处理分开,通过控制器对二者进行结合;

三层架构强调对数据进行不同维度的处理,如表现层进行数据的校验与返回,业务逻辑层进行数据的处理,数据层进行数据的存储等等。

3.2 MVC与三层架构的共性

MVC架构与三层架构的目的是相同的,都是解耦+分层+代码复用;

在软件设计中,有一个原则:高内聚低耦合。

(1)高内聚:⼀个模块中各个元素之间的联系的紧密程度。

如果各个元素(语句、程序段)之间的联系程度越高,则内聚性越⾼,即 "高内聚"。

(2)低耦合指的是:软件中各个层、模块之间的依赖关联程序越低越好。

修改⼀处代码, 其他模块的代码改动越少越好。


http://www.ppmy.cn/news/1568804.html

相关文章

17 一个高并发的系统架构如何设计

高并发系统的理解 第一:我们设计高并发系统的前提是该系统要高可用,起码整体上的高可用。 第二:高并发系统需要面对很大的流量冲击,包括瞬时的流量和黑客攻击等 第三:高并发系统常见的需要考虑的问题,如内存不足的问题,服务抖动的…

Ollama部署指南

什么是Ollama? Ollama是一个专为在本地机器上便捷部署和运行大型语言模型(LLM)而设计的开源工具。 如何部署Ollama? 我是使用的云平台,大家也可以根据自己的云平台的特点进行适当的调整。 使用系统:ubun…

从零开始开发纯血鸿蒙应用之自定义构建函数

从零开始开发纯血鸿蒙应用 一、前言二、系统性认识Builder和BuilderParam三、改造 PageTitleBar四、总结 一、前言 上个周末,由于身体抱恙,故而没有更新博文,而昨天,在返乡路途上,所以,只能拖到今天才进行…

可被electron等调用的Qt截图-录屏工具【源码开放】

1. 工具功能简介: (1)、QT5.15.2截图工具(exe)可单独使用或嵌入IM(嵌入方法参照:https://gitee.com/lykiao/yfscreenshot_release) (2)、支持通过Windows消息通知截图成功或取消 (3)、支持圆形、矩形、线条…

第25节课:前端缓存策略—提升网页性能与用户体验

目录 前端缓存的重要性HTTP缓存HTTP缓存的基本原理常见的HTTP缓存头Cache-ControlExpiresETagLast-Modified HTTP缓存的类型强缓存协商缓存 服务端渲染与SSR服务端渲染(SSR)简介SSR的优势SSR的挑战实践:使用SSR框架构建Web应用Next.js安装Nex…

Kafka常见问题之 java.io.IOException: Disk error when trying to write to log

文章目录 Kafka常见问题之 java.io.IOException: Disk error when trying to write to log1. 问题概述2. 问题排查方向(1)磁盘空间不足(2)磁盘 I/O 故障(3)Kafka 日志文件损坏(4)Kaf…

360嵌入式开发面试题及参考答案

解释一下 802.11ax 和 802.11ac/n 有什么区别 速度与带宽 802.11n 支持的最高理论速率为 600Mbps,802.11ac 进一步提升,单流最高可达 866.7Mbps,多流情况下能达到更高,如 1.3Gbps 等。而 802.11ax(Wi-Fi 6)引入了更多先进技术,理论最高速率可达 9.6Gbps,相比前两者有大…

2025年01月25日Github流行趋势

项目名称:it-tools 项目地址url:https://github.com/CorentinTh/it-tools项目语言:Vue历史star数:25298今日star数:212项目维护者:CorentinTh, apps/renovate, cgoIT, sharevb, marvin-j97项目简介&#xf…