什么是分层架构

本文探讨了架构分层的重要性,包括高内聚和低耦合原则,介绍了MVC和后端三层架构的区别,以及它们如何提升系统的可维护性和扩展性。特别强调了分层设计在简化复杂问题和复用方面的优势。

👨‍💻个人主页:@微微的猪食小窝
欢迎 点赞👍 收藏⭐ 留言📝 加关注✅!
本文由 微微的猪食小窝 原创

 

1、什么是架构分层?

分层架构是将软件模块按照水平切分的方式分成多个层,一个系统由多层组成,每层由多个模块组成。同时,每层有自己独立的职责,多个层次协同提供完整的功能。比如,我们经常提到的MVC架构,就是一种非常典型非常基础的分层方式。

分层设计的本质其实就是将复杂问题简单化,基于单一职责原则让每层代码各司其职,基于“高内聚,低耦合”的设计思想实现相关层对象之间的交互。从而,提升代码的可维护性可扩展性

 

2、为什么要分层

  • 高内聚:分层的设计可以简化系统设计,让不同的层专注做某一模块的事

  • 低耦合:层与层之间通过接口或API来交互,依赖方不用知道被依赖方的细节

  • 复用:分层之后可以做到很高的复用

  • 扩展性:分层架构可以让我们更容易做横向扩展

如果系统没有分层,当业务规模增加或流量增大时我们只能针对整体系统来做扩展。分层之后可以很方便的把一些模块抽离出来,独立成一个系统。

3、传统MVC架构

优点:关注前后端分离

缺点:模型层分层太粗,融合了数据处理、业务处理等所有的功能。核心的复杂业务逻辑都放到模型层,导致模型层很乱

适应场景:后端业务逻辑简单的服务,比如接口直接提供对数据库增删改查

4、后端三层架构

定义:

  1. 表现层(UI),通俗讲就是展现给用户的界面,对应项目中的Web层包含Servlet和Controller等。
  2. 业务逻辑层(BLL):也称作领域层,负责系统业务逻辑的处理,对应项目中Service和ServiceImpl等。
  3. 数据访问层(DAL):该层所做事务直接操作数据库,针对数据的增添、删除、修改、更新、查找等,对应项目中的Dao。

优点:逻辑与数据层分离

缺点:模型层分层比较粗,核心的复杂业务逻辑都放到模型层,导致模型层很乱

适应场景:后端业务逻辑简单的服务,比如接口直接提供对数据库增删改查

5、三层架构和MVC的区别与联系

MVC严格说是三层架构中的UI层,也就是说,MVC把三层架构中的UI层再度进行了分化,分成了控制器、视图、实体三个部分,控制器完成页面逻辑,通过实体来与界面层完成通话,而C层直接与三层中的BLL进行对话。

三层架构和MVC可以共存。三层架构是基于业务逻辑来分的,而MVC是基于页面来分的。MVC是表现模式(Presentation Pattern),三层架构是典型的架构模式(Architecture Pattern)。

三层架构的分层模式是典型的上下关系,上层依赖于下层。但MVC作为表现模式是不存在上下关系的,而是相互协作关系。即使将MVC当作架构模式,也不是分层模式。MVC和三层架构基本没有可比性,是应用于不同领域的技术。

文章参考资料:📝参考资料1 📝参考资料2

### 分层架构图的定义 分层架构图是一种用于描述软件系统的结构和各组成部分之间关系的图形表示方法[^2]。它通过将整个系统划分为多个层次,每一层负责特定的功能模块或职责范围,从而清晰地展示各个部分之间的依赖关系和交互方式。通常情况下,分层架构图可以直观地反映系统的逻辑架构和技术实现细节。 --- ### 分层架构图的示例 以下是常见的分层架构图实例: #### 经典三层架构 经典三层架构由用户界面层、业务逻辑层和数据访问层构成[^4]。 - **用户界面层**:处理用户的输入输出操作,提供友好的交互体验。 - **业务逻辑层**:封装核心业务规则和流程控制逻辑。 - **数据访问层**:管理底层数据库或其他持久化存储的操作。 ```plaintext +-------------------+ | 用户界面层 | +-------------------+ ↓ +-------------------+ | 业务逻辑层 | +-------------------+ ↓ +-------------------+ | 数据访问层 | +-------------------+ ``` #### DDD分层架构 领域驱动设计(DDD)中的分层架构更加注重领域模型的设计和抽象[^3]。其典型分层包括: - **表现层**:与外部世界交互的部分,类似于用户界面层。 - **应用层**:协调用例执行,不包含具体的业务逻辑。 - **领域层**:封装核心业务规则和实体对象。 - **基础设施层**:支持其他层的技术实现,如数据持久化和服务调用。 ```plaintext +-------------------+ | 表现层 | +-------------------+ ↓ +-------------------+ | 应用层 | +-------------------+ ↓ +-------------------+ | 领域层 | +-------------------+ ↓ +-------------------+ | 基础设施层 | +-------------------+ ``` #### OSI网络模型 OSI七层模型是一个典型的分层架构案例[^2],展示了通信协议栈的不同层次以及它们的作用: - **物理层** - **数据链路层** - **网络层** - **传输层** - **会话层** - **表示层** - **应用层** --- ### 分层架构图在软件设计中的应用 分层架构图的主要作用在于帮助开发者理解并规划系统的整体结构,同时指导团队成员协作完成开发工作。它的具体用途包括以下几个方面: 1. **简化复杂性**:通过分解复杂的系统为若干个简单的子系统,降低理解和维护成本。 2. **提高复用性**:每层专注于解决某一类问题,便于提取通用组件供其他项目重用[^2]。 3. **增强可扩展性**:当新增功能或者优化性能时,只需修改对应的一两层即可,而无需改动全局代码。 4. **促进分工合作**:不同的开发人员可以根据自己的专长分别负责某一层的工作,提升效率。 ---
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值