🏠 首页›第二梯队 · 案例选答专题 · 第 16 小时 · 层次式架构设计

层次式架构设计理论与实践

选择 2~5 分案例 25 分
📄 教材出处 · 第 16 小时《层次式架构》 (书第 136–143 页) ▸ 查看原文摘录 打开教材 PDF ↗
第 136 页 ↗1 层次式架构设计理论与实践 16.0 章节考点分析 主要学习层次式架构设计理论与实践。
第 137 页 ↗本章重点介绍了层次式架构中的表现层、中间层、访问层和数据层的体系结构设 计技术,给出了层次式架构的案例分析。
第 138 页 ↗ 16.2 表现层框架设计 【基础知识点】 1.MVC(Model-View-Controller)模式 MVC 是一种软件设计模式。
第 139 页 ↗ 2.MVP(Model-View-Presenter)模式 在MVP模式中Model提供数据,View负责显示,Controller/Presenter负责逻辑的处理。
第 140 页 ↗16.3 中间层框架设计 【基础知识点】 1.业务逻辑层组件设计 业务逻辑层组件分为接口和实现类两个部分。
第 141 页 ↗ 16.4 数据访问层设计 【基础知识点】 1.数据访问模式 数据访问模式有5种,分别是:在线访问、Data Access Object、Data Transfer Object、离线数 据模式、对象/关系映射(Object/Relation Mapping)。

知识点目录(共 6 项)

  1. 四层结构:表现层 → 中间层 → 数据访问层 → 数据存储层,层间调用原则
  2. 表现层:MVC 协作流程 / MVP(Passive View / Supervising Controller)/ MVVM 双向绑定
  3. 中间层:业务组件 / 工作流参考模型 WfMC 五接口 / EJB
  4. 数据访问层:DAO 模式 / ORM / 连接池
  5. 数据架构规划:数据分布四方式(分片 / 分布 / 复制 / 集中)
  6. 物联网层次架构:感知层 / 网络层 / 应用层(案例高频)

知识点详解

一、层次式体系结构概述

定义:层次式体系结构将系统组成为一个层次结构,每一层为上层服务,并作为下层客户。除少数精心挑选的输出函数外,内部层接口只对相邻层可见。每一层最多只影响两层,只要给相邻层提供相同接口,每层就可以用不同方法实现——这为软件重用提供了强大支持。

大部分应用会分成四层,自上而下依次为:表现层 → 中间层(业务层)→ 访问层(持久层)→ 数据层。

表现层(展示层) 中间层(业务层) 访问层(持久层) 数据层(数据存储层) UI / 界面展示 业务逻辑 / 工作流 DAO / ORM / 连接池 DBMS / 文件 Request 逐层向下 各层组件 只与本层逻辑 相关(封闭)
图 1 常用的层次式架构(四层结构与层间调用)

最大特点:关注点分离(Separation of Concerns)——每层组件只负责本层逻辑,角色职责明确,容易开发、测试、管理与维护。

⚠️ 考点·两个注意事项:① 容易成为污水池反模式(Architecture Sinkhole Anti-pattern):请求流简单穿过几层,每层几乎没做业务逻辑(如业务层只简单调用持久层接口);② 分层架构可能让应用变得庞大。

二、表现层:MVC / MVP / MVVM

MVC(Model-View-Controller)把应用的输入、处理、输出流程分离为三个核心模块:

MVC 优点:允许多种界面扩展、易于维护、易于构建强大 UI、增加可拓展性/强壮性/灵活性。

MVP(Model-View-Presenter):Model 提供数据,View 负责显示,Presenter 负责逻辑处理。不仅避免 View 与 Model 耦合,还进一步降低 Presenter 对 View 的依赖。优点:① 模型与视图完全分离;② 交互集中在 Presenter 内,高效使用模型;③ 一个 Presenter 可用于多个视图;④ 逻辑可脱离 UI 做单元测试。MVP 有两个经典变体:Passive View(视图完全无逻辑,Presenter 直接命令视图刷新,可测试性最强)与 Supervising Controller(视图自己处理简单数据绑定,Presenter 只处理复杂逻辑)。

MVVM(Model-View-ViewModel):View 与 Model 不能直接通信,交互只能通过 ViewModel;其核心是 DataBinding 实现双向绑定,内容包括数据状态处理、数据绑定及数据转换。典型框架:Vue.js、Angular、WPF。

MVC MVP MVVM View 可直接引用 Model Controller 接收输入 调度处理流程 View 与 Model 完全隔离 所有交互经 Presenter 可脱离 UI 单元测试 View 与 Model 不通信 经 ViewModel DataBinding 双向绑定 典型:Spring MVC、Struts 典型:Android MVP、WinForms 典型:Vue / Angular / WPF
图 2 三大表现层模式对比
对比维度MVCMVPMVVM
View 与 Model 关系View 可直接引用 Model完全隔离,经 Presenter 中转完全隔离,经 ViewModel + 数据绑定
中间人职责Controller 接收输入、调度Presenter 处理全部逻辑ViewModel 数据状态/绑定/转换
数据同步手动手动(Presenter 处理)自动(双向绑定)
可测试性一般好好
💡 记忆技巧:MVC = Controller 是"交通警察"指挥数据流;MVP = Presenter 是"翻译官"双向传话(View 彻底变哑巴);MVVM = ViewModel 是"自动同步器",DataBinding 让数据一变界面自动刷新。口诀:"M 解耦 V,C 管 P 管 VM 绑"。

三、中间层框架设计

1. 业务逻辑层组件:分为接口 + 实现类两部分。接口定义业务逻辑组件必须实现的方法,是整个系统运行的核心。通常按模块设计业务逻辑组件,每个组件以多个 DAO(Data Access Object)组件为基础,对外提供业务逻辑服务。

2. 工作流设计:工作流管理联盟 WFMC 定义:工作流是业务流程的全部或部分自动化,在此过程中,文档、信息或任务按照一定的过程规则流转,实现组织成员间的协调工作以达到业务的整体目标。

工作流引擎 核心:过程实例调度 过程定义工具 工作流客户端应用 相关应用 管理与监视工具 其他工作流引擎 接口1 过程定义 接口2 客户端应用 接口3 调用应用 接口4 互操作 接口5 管理/监视
图 3 WFMC 工作流参考模型(1 个引擎 + 5 个接口)
接口连接对象作用
接口 1过程定义工具 ↔ 工作流引擎过程定义导入/导出(早期 WPDL,后发展为 XPDL)
接口 2客户端应用 ↔ 工作流引擎处理需要人工干预的任务(工作项 workitem)
接口 3被调用应用 ↔ 工作流引擎引擎直接激活外部应用工具执行活动
接口 4工作流引擎 ↔ 其他工作流引擎不同工作流执行服务之间的协作/互操作
接口 5管理监视工具 ↔ 工作流引擎过程实例状态监控与管理(用户/角色/审计/资源控制)

3. 业务逻辑层实体:提供对业务数据及相关功能的状态编程访问;可由数据库多个相关表的数据构建;可作为业务过程的 I/O 参数传递;可序列化以保持当前状态。

4. 业务逻辑层框架:位于中间层,采用容器形式,按 Domain Model - Service - Control 思想实现:Domain Model 是仅含业务属性的领域层业务对象;Service 是业务过程组成的功能单元,通过定义良好的接口和契约联系;Control 是服务控制器,是服务之间切换的纽带。

四、数据访问层设计

数据访问模式共 5 种:

模式要点
① 在线访问最常用;占用一个数据库连接,每个操作都通过该连接不断与数据源交互
② DAO标准 J2EE 设计模式;将底层数据访问与高层业务逻辑分离;典型组成:DAO 工厂类 + DAO 接口 + 实现类 + 数据传输对象
③ DTO(Data Transfer Object)EJB 设计模式之一;一组对象或容器,需要跨越进程或网络边界传输数据
④ 离线数据模式以数据为中心,数据按预定义结构存于本应用中,操作独立于后台连接或事务
⑤ ORM 对象/关系映射利用工具将应用数据与关系数据库记录互相转换,像操作对象一样操作数据库

工厂模式的应用:定义创建对象的接口,让子类决定实例化哪个类——先定义操纵数据库的接口,再根据数据库的不同由类工厂决定实例化哪个类,以支持多种数据库。

ORM 与 Hibernate:Hibernate 是功能强大的 O/R 映射方案,推动基于普通 Java 对象(POJO)模型的持久对象开发。

事务处理:必须服从 ISO/IEC 制定的 ACID 原则——原子性(任何失败都导致修改失效)、一致性(失败时受影响数据恢复到执行前状态)、隔离性(提交之前对其他事务不可见)、持久性(已提交数据在失败时状态仍正确)。

⚠️ 高频陷阱:隔离性是"提交之前"不可见,不是"提交之后"——选择题常在此偷换字眼。XML Schema 用来描述 XML 文档的合法结构、内容和限制,提供丰富数据类型。连接对象管理:建立数据库连接池,提供高效连接分配使用策略,保证连接的有效复用。

五、数据架构规划与设计

六、物联网层次架构设计(案例高频)

应用层 —— 实现广泛智能化 与行业专业技术深度融合,类似"社会分工" 网络层 —— 传递信息和处理信息 融合网络、网络管理中心、信息中心、智能处理中心,类似"神经中枢和大脑" 感知层 —— 识别物体、采集信息 二维码/RFID/摄像头/GPS/传感器/M2M 终端/网关,类似"皮肤和五官"
图 4 物联网三层架构(感知 → 网络 → 应用,信息自下而上流动)
层次功能组成人体类比
感知层识别物体、采集信息二维码标签和识读器、RFID 标签和读写器、摄像头、GPS、传感器、M2M 终端、传感器网关皮肤和五官
网络层传递信息和处理信息通信网与互联网的融合网络、网络管理中心、信息中心、智能处理中心神经中枢和大脑
应用层实现广泛智能化物联网与行业专业技术深度融合,结合行业需求实现行业智能化社会分工
⚠️ 真题陷阱:"指纹"不是感知层设备——指纹是人的特征属性,不是采集设备。选择题常拿"扫描仪/摄像头/GPS"与"指纹"混淆。
💡 本节框架:"一纵四横一物联网"——纵:四层结构(表现→中间→访问→数据);横 1:MVC/MVP/MVVM;横 2:WfMC 五接口;横 3:五种数据访问模式 + ACID;横 4:数据分布四方式;尾:物联网三层(感知/网络/应用 = 五官/大脑/分工)。