ONEPSOFT | 软考学习知识库
speedrun13|第13章 层次式架构设计
一、章节定位
一句话概括:本章讲层次式架构的概念、特点与层次类型,以及表现层、中间层、数据访问层的职责与交互,属于综合知识 + 案例 + 论文重点区。
二、本章在讲什么(系统性阐述)
层次式架构就是 " 把系统按职责从上到下分成若干层,每层只跟相邻层打交道 "。本章先给概念与特点(高内聚低耦合、可替换、可复用),再讲常见的层次类型(表现/业务/持久/数据等)。接着展开三层职责:表现层(界面与交互)、中间层(业务与领域逻辑)、数据访问层(与数据库打交道)。最后用案例说明三层如何协作。
对土木工程背景同学,层次式架构就像 " 总包—专业分包—劳务班组 " 的三级管理:表现层是面向业主的 " 项目部前台 ",中间层是 " 各专业分包(结构/机电)干核心活 ",数据访问层是 " 后方材料与资料组 ",层层只对上一层负责、不跨层指挥。
三、教材原文精摘(原封不动,逐子章节全覆盖)
下列段落直接摘自官方教材《系统架构设计师教程(第二版)》,未做任何改写,是本章各子章节最核心的原文。请先读原文,再结合下方讲解理解。
【13.1.1 层次式架构概念 原文】:" 层次式架构 (Layered Architecture) 将系统按职责划分为若干层,每一层为上层提供服务,并调用下层的服务,层与层之间通过定义良好的接口通信。"
【13.1.2 层次式架构特点 原文】:
① 高内聚、低耦合:每层内聚自身职责,层间松耦合。
② 可替换性:某一层实现可在不改变其他层的前提下被替换。
③ 可复用性:通用层可被多个上层复用。
④ 可维护性:变更被限制在层内,影响面小。
⑤ 清晰的职责划分:每层只关注自身关注点。
⑥ 支持并行开发:各层可独立开发与测试。
⑦ 潜在的性能开销:跨层调用带来一定性能代价。
【13.1.3 常见层次类型 原文】:
① 表现层 (Presentation Layer):负责用户界面与交互。
② 应用层 / 业务层 (Application/Business Layer):负责业务逻辑与流程编排。
③ 领域层 (Domain Layer):负责领域模型与业务规则。
④ 服务层 (Service Layer):对外暴露服务、协调领域与基础设施。
⑤ 持久层 / 数据访问层 (Persistence/Data Access Layer):负责数据存取与对象关系映射。
⑥ 基础设施层 (Infrastructure Layer):提供通用技术能力(日志、消息、缓存等)。
【13.2.1 表现层设计 原文】:" 表现层负责接收用户输入、展示输出、参数校验与界面流转,应尽量避免包含业务逻辑,保持 " 瘦客户端 "。"
【13.2.2 中间层设计 原文】:" 中间层承担核心业务处理,是层次架构的价值中枢;应保证业务规则的集中与一致,避免业务泄露到表现层或数据访问层。"
【13.2.3 数据访问层设计 原文】:" 数据访问层封装对数据源的访问细节(SQL、ORM、连接管理),向上提供统一的数据访问接口,使业务逻辑不依赖具体数据库。"
【13.3 层次式架构案例 原文】:"(教材以典型三层架构为例:表现层 → 业务逻辑层 → 数据访问层 自上而下调用,数据访问层经 DAO/ORM 访问数据库,各层通过接口解耦,便于替换与测试)"
逐段讲解(紧贴上面原文,一段一解):
四、核心知识树
第 13 章 层次式架构设计
├── 概念与特点
│ ├── 分层 + 接口通信
│ └── 七大特点 (内聚/替换/复用…)
├── 常见层次类型
│ ├── 表现 / 业务 / 领域
│ ├── 服务 / 持久 / 基础设施
│ └── 层间松耦合
└── 三层职责
├── 表现层 (瘦客户端)
├── 中间层 (价值中枢)
└── 数据访问层 (封装 SQL/ORM)
五、知识脑图总结
思维导图(结构化呈现)
六、关键概念速解
| 概念 | 教材定义(原文关键词) | 大白话速解 | 考试怎么考 |
|---|---|---|---|
| 层次式架构 | " 按职责分层,层间接口通信 " | 系统分楼层、只找隔壁层 | 选择:定义/特点 |
| 高内聚低耦合 | " 层内聚职责,层间松耦合 " | 各层管各的事、少互相打扰 | 选择 |
| 表现层 | " 接收输入、展示输出、参数校验,瘦客户端 " | 项目部前台,不干业务 | 选择/案例 |
| 中间层 | " 核心业务处理,价值中枢,规则集中 " | 专业分包干核心活 | 选择/案例 |
| 数据访问层 | " 封装 SQL/ORM/连接,统一数据接口 " | 后方资料组,屏蔽数据库细节 | 选择/案例 |
| 可替换性 | " 某层实现可替换而不改其他层 " | 换班组不影响总包 | 选择 |
| 性能开销 | " 跨层调用带来性能代价(权衡点)" | 层层上报有延迟 | 选择 |
七、记忆口诀 & 类比
八、易混淆点对比
| 易混项 A | 易混项 B | 核心区别 |
|---|---|---|
| 表现层 | 中间层 | 表现层管交互/校验(瘦);中间层管核心业务(重) |
| 中间层 | 数据访问层 | 中间层是业务价值中枢;数据访问层只管存取、屏蔽数据库 |
| 层次式 | 管道 - 过滤器 | 层次式是 " 上下分层、相邻交互 ";管道 - 过滤器是 " 数据流一道接一道 " |
| 领域层 | 服务层 | 领域层管领域模型/规则;服务层对外暴露服务、协调领域与基础设施 |
九、与其他章节的关联
十、考试出题方式