浅谈三层架构(四) | 青训营笔记

143 阅读2分钟

这是我参与「第三届青训营 - 后端场」笔记创作活动的的第四篇笔记。

三层架构

image.png

1. 背景

三层架构是一个成熟的软件应用程序架构,它将应用程序组织到三个逻辑和物理计算层中:表示层或用户界面;用于处理数据的应用程序层;以及用于存储和管理应用程序关联数据的数据层。

三层架构的主要优势在于,由于每层都在自己的基础架构上运行,因此每层都可以由独立开发团队同时开发,并且可根据需要进行更新或扩展,而不会影响其他层。

数十年来,三层架构都是客户机/服务器应用程序的主要架构。 现今,大多数三层应用程序都成为了使用云原生技术(如容器和微服务)进行现代化的目标以及云迁移的目标。

2. 什么是三层架构?

数据层(Repository):数据Model,外部数据的增删改查。
逻辑层(Service):业务Entity,处理核心业务逻辑输出。
视图层(Controller):视图View,处理和外部的交互逻辑。

2.1 数据层(Repository)

数据层也叫数据持久层,它主要负责的是和外部数据存储结构之间的活动,比如通过xorm来控制数据库的增删改查。
我们可以把数据层比作地里种植的果农,负责水果的产出。

2.2 逻辑层(Service)

逻辑层用来包装数据层传上来的数据,将数据经过[参数校验 -> 准备数据 -> 组装实体]的过程后传给更上一层的视图层。
我们可以把逻辑层比作代工厂,加工厂,负责对需要卖的水果进行检测和包装。

2.3 视图层(Controller)

视图层负责对包装好的数据进行和外部的交互。
我们可以把视图层比作卖水果的商贩,客户要什么水果,它提供什么样的水果。

串联起来就是数据层负责从数据存储介质中拿数据,逻辑层进行数据的校验打包,传递给视图层进行后续的交互任务。

3. 为什么使用三层架构?

解耦!三层之间相互隔离,出现变化了也不会互相影响。比如数据层加了一个新的表,但并不影响逻辑层之前对于数据层之前的调用,提高了可拓展性