设计模式-应用分层

一.什么是应用分层

在没有应用分层的项目中:

此时对于前端的请求,不论是接收数据、处理数据、返回数据,都在堆积在一起的,这样的做法对于项目规模小的项目来说还能勉强应对,一但项目的规模变大,这样堆积在一起的做法,非常不利于项目的后期维护。

在最开始的时候,为了让项目快速上线,我们通常是不考虑分层的. 但是随着业务越来越复杂,大量的代码混在⼀起,会出现逻辑不清晰、各模块相互依赖、代码扩展性差、改动⼀处就牵⼀发而动全身等问题。
类似公司的组织架构
公司初创阶段, ⼀个人身兼数职,既做财务, 又做人事, 还有行政。随着公司的逐渐壮大, 会会把岗位进行细分,划分为财务部门, 人事部门, 行政部门等。 各个部门内部还会再进行细分。
项目开发也是类似,最开始功能简单时,我们前后端放在⼀起开发,随着项目功能的复杂,我们分为前端和后端不同的团队,甚至更细粒度的团队。 后端开发也会根据功能再进行细分。MVC就是其中的⼀种拆分方式。 但是随着后端人员不再涉及前端,后端开发⼜有了新的分层方式。
在阿里的开发手册中,关于工程结构部分,定义了常见工程的应用分层结构:


应用分层是⼀种软件开发设计思想,它将应用程序分成N个层次,这N个层次分别负责各自的职责,多个层次之间协同提供完整的功能. 根据项目的复杂度,把项目分成三层,四层或者更多层。
常见的MVC设计模式, 就是应用分层的⼀种具体体现。

二.如何分层

MVC思想就是一个应用分层很好的体现:

也就是将用户视图和业务处理分开,并且通过中间的Controller来连接。

但是就目前的项目开发来说,现在的Web网站规模都非常的庞大,所以现在开发都采用前后端分离的方式开发,后端开发人员根本不关注网站的前端页面是如何实现的,后端开发人员只需要将前端所需要用到的数据返回给前端开发人员就好了。

所以针对后端开发有了新的分层架构,把整体的架构分为:表现层、业务处理层、数据层。

这种分层方式也叫做"三层架构"。

三.三层架构

1.表现层:就是展示数据结果和接受用户指令的,是最靠近用户的一层;

2.业务逻辑层:负责处理业务逻辑,里面有复杂业务的具体实现;

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

四.Spring中的三层架构

五. MVC和三层架构的区别和联系

首先从概念上来讲,两者都是软件工程设计领域中的架构模式。

MVC架构模式是又三部分组成,分别是:View(视图)、Controller(控制器)、Model(模型)。

三层架构是将应用分为:Controller(表现层)、Service(业务处理层)、Dao(持久层)。


MVC中,视图和控制器合起来对应三层架构中的表现层,模型对应三层架构中的业务逻辑层, 数据层,以及实体类。
二者其实是从不同角度对软件工程进行了抽象。
MVC模式强调数据和视图分离,将数据展示和数据处理分开,通过控制器对两者进行组合。
**三层架构强调不同维度数据处理的高内聚和低耦合,**将交互界面,业务处理和数据库操作的逻辑分开。
角度不同也就谈不上互相替代了,在日常的开发中可以经常看到两种共存的情况,比如我们设计模型层的时候往往也会拆分出业务逻辑层(Service层)和数据访问层(Dao层)。
但是⼆者的目的是相同的, 都是"解耦,分层,代码复用"。

相关推荐
剧中有戏17 小时前
抽象工厂模式从入门到精通:一个多云存储案例的完整剖析(修订版)
设计模式
MC皮蛋侠客21 小时前
Redis 系列(八):缓存设计模式与一致性——从 Cache Aside 到防雪崩
redis·缓存·设计模式
莫得感情 o1 天前
设计模式 18 · 状态模式
设计模式·状态模式
莫得感情 o1 天前
设计模式 17 · 责任链模式
设计模式·责任链模式
用户938515635071 天前
从零在浏览器里跑 DeepSeek-R1:WebGPU + Transformer.js 全链路实战
前端·设计模式·typescript
AI人工智能+电脑小能手2 天前
大白话说Java设计模式-04-工厂方法模式(业务实战篇)
java·设计模式·工厂方法模式·架构设计·代码解耦
今天的砖头有点烫手啊2 天前
AI Agent 开发实战(十):Agent 设计模式(ReAct / Plan-Execute / Reflection)
人工智能·react.js·设计模式
董员外2 天前
RAG 系统进化论(十):可运营 RAG,从原型到长期运行的知识系统
人工智能·后端·设计模式
莫得感情 o2 天前
设计模式 15 · 模板方法模式
设计模式·模板方法模式