【JavaEE】_MVC架构与三层架构

embedded/2025/2/3 10:31:28/

目录

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/embedded/159163.html

相关文章

课题介绍:基于惯性与单目视觉信息融合的室内微小型飞行器智能自主导航研究

室内微小型飞行器在国防、物流和监测等领域中应用广泛,但在复杂的非合作环境中实时避障和导航仍面临诸多挑战。由于微小型飞行器的载荷和能源限制,迫切需要开发高效的智能自主导航系统。本项目旨在研究基于惯性导航与单目视觉信息融合的技术,…

java知识点 | java中不同数据结构的长度计算

在Java中,size 和 length是两个不同的属性,分别用于不同的数据结构。以下是它们的详细区别和适用场景: 1.length 适用对象: 数组(Array):数组是一个固定长度的线性数据结构,其长度是…

14JavaWeb——SpringBoot原理

SpingBoot原理 在前面十多天的课程当中,我们学习的都是web开发的技术使用,都是面向应用层面的,我们学会了怎么样去用。而我们今天所要学习的是web后端开发的最后一个篇章springboot原理篇,主要偏向于底层原理。 我们今天的课程安…

对象的实例化、内存布局与访问定位

一、创建对象的方式 二、创建对象的步骤: 一、判断对象对应的类是否加载、链接、初始化: 虚拟机遇到一条new指令,首先去检查这个指令的参数能否在Metaspace的常量池中定位到一个类的符号引用,并且检查这个符号引用代表的类是否已经被加载、解析和初始化…

数据分析系列--[12] RapidMiner辨别分析(含数据集)

一、数据准备 二、导入数据 三、数据预处理 四、建模辨别分析 五、导入测试集进行辨别分析 一、数据准备 点击下载数据集 二、导入数据 三、数据预处理 四、建模辨别分析 五、导入测试集进行辨别分析 Ending, congratulations, youre done.

【VM】VirtualBox安装ubuntu22.04虚拟机

阅读本文之前,请先根据 安装virtualbox 教程安装virtulbox虚拟机软件。 1.下载Ubuntu系统镜像 打开阿里云的镜像站点:https://developer.aliyun.com/mirror/ 找到如图所示位置,选择Ubuntu 22.04.3(destop-amd64)系统 Ubuntu 22.04.3(desto…

Android学习制作app(ESP8266-01S连接-简单制作)

一、理论 部分理论见arduino学习-CSDN博客和Android Studio安装配置_android studio gradle 配置-CSDN博客 以下直接上代码和效果视频,esp01S的收发硬件代码目前没有分享,但是可以通过另一个手机网络调试助手进行模拟。也可以直接根据我的代码进行改动…

如何使用 DeepSeek API 结合 VSCode 提升开发效率

引言 在当今的软件开发领域,API 的使用已经成为不可或缺的一部分。DeepSeek 是一个强大的 API 平台,提供了丰富的功能和数据,可以帮助开发者快速构建和优化应用程序。而 Visual Studio Code(VSCode)作为一款轻量级但功…