当前位置: 首页 > article >正文

【JavaEE】_MVC架构与三层架构

目录

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.kler.cn/a/524317.html

相关文章:

  • 计算机网络 IP 网络层 2 (重置版)
  • Visual Studio Code修改terminal字体
  • SpringBoot中@Valid与@Validated使用场景详解
  • CTFSHOW-WEB入门-命令执行29-32
  • 危机13小时:追踪一场GitHub投毒事件
  • Spring事务和事务传播机制
  • matlab学习路线
  • springboot使用rabbitmq
  • 使用CSS实现一个加载的进度条
  • 深度学习可视化指标方法工具
  • Python学习之旅:进阶阶段(五)数据结构-双端队列(collections.deque)
  • 如何将电脑桌面默认的C盘设置到D盘?详细操作步骤!
  • leetcode——排序链表(java)
  • 深入探索SQL中修改表字段属性的技巧与策略
  • 【PyQt5】数据库连接失败: Driver not loaded Driver not loaded
  • 10.2 目录(文件夹)操作
  • 至少是其他数字两倍的最大数(747)
  • Skynet实践之「Lua C 模块集成—优先级队列」
  • 渲染流程概述
  • 【逻辑学导论第15版】A. 推理
  • Windows 系统下使用 Ollama 离线部署 DeepSeek - R1 模型指南
  • MyBatis 关联映射详解
  • OpenEuler学习笔记(十五):在OpenEuler上搭建Java运行环境
  • 【实践】基于SakuraLLM的离线日文漫画及视频汉化
  • HarmonyOS:状态管理最佳实践
  • 联想Y7000+RTX4060+i7+Ubuntu22.04运行DeepSeek开源多模态大模型Janus-Pro-1B+本地部署