【软考架构师】层次式架构设计理论与实践 核心学习笔记(附Mermaid图解与高频真题)
摘要:本文基于软考《系统架构设计师》第13章,深度解析了层次式架构设计的核心理论。本章是架构设计的绝对重点,涵盖了经典的N层架构(表现层、中间层、数据访问层、数据层)、MVC/MVP/MVVM的演变、业务逻辑层的领域模型设计、数据访问层的5种模式以及物联网三层架构。本文采用CSDN极客风格,结合Mermaid图表直观展示复杂流程(如表现层模式对比、工作流参考模型等),并附带典型真题解析,助力大家高效备考。
关键词:软考、系统架构设计师、层次式架构、MVC、MVP、MVVM、数据访问层、物联网架构、Mermaid图解
📑 目录
- 一、 层次式体系结构概述
- 二、 表现层框架设计(核心考点)
- 三、 中间层架构设计(业务逻辑层)
- 四、 数据访问层设计(5种模式)
- 五、 数据架构规划与XML存储
- 六、 物联网层次架构设计
- 七、 层次架构案例分析(PetShop演进)
- 八、 典型真题解析
一、 层次式体系结构概述
层次式体系结构(N层架构模式)将系统组成一个层次结构,每一层为上层服务,并作为下层客户。内部的层接口只对相邻的层可见,只要给相邻层提供相同的接口,允许每层用不同的方法实现,为软件重用提供了强大的支持。
- 核心思想:关注点分离。组件只负责本层逻辑,易于开发、测试、管理和维护。
- 经典分层:表现层(展示层)、中间层(业务层)、数据访问层(持久层)和数据层。
- ⚠️ 避坑指南(反模式):
- 污水池反模式:请求流简单地穿过几个层,每层里面基本没有做任何业务逻辑。如果请求超过20%,应考虑让一些层变成开放的。
- 架构庞大:分布模式复杂、健壮性下降、性能不足及代码规模膨胀。
二、 表现层框架设计
2.1 MVC模式
MVC 强制把应用的输入、处理、输出流程按照**视图(View)、控制器(Controller)、模型(Model)**进行分离。
- 视图:用户交互界面,不进行业务处理。
- 控制器:接受用户输入,调用模型和视图。是UI与模型的接口。
- 模型:业务数据和业务逻辑。一个模型能为多个视图提供数据(提高重用性)。
- 特点:允许View和Model直接进行“交流”。
2.2 MVP模式
Presenter负责逻辑处理。MVP中View并不直接使用Model,它们通过Presenter通信,所有交互都发生在Presenter内部。
- 区别:MVC中View直接从Model读取数据;MVP中View与Model完全分离。
- 应用:目前被更多地用在Android开发中。
2.3 MVVM模式
MVVM全称是模型-视图-视图模型(Model-View-ViewModel),为解决MVP中UI种类变多、接口不断增加的问题而提出。
- ViewModel(核心):专门用于数据转换的控制器。通过 DataBinding 实现View与Model之间的双向绑定。
2.4 UIP与基于XML的界面管理
- UIP(User Interface Process):分为
User Interface Components(原表现层)和User Interface Process Components(协调各部分、导航和工作流控制)。 - 基于XML的界面管理(★★★):用XML生成配置文件及界面所需的元数据,按不同需求生成界面元素。包括:界面配置(静态定义)、界面动态生成、界面定制(动态修改,如修改菜单、工具栏)。
三、 中间层架构设计
业务框架位于中间层,采用容器的形式,便于系统功能的开发、代码重用和管理。
3.1 业务容器与核心组件
业务逻辑按照 Domain Model - Service - Control 思想实现:
- Domain Model:领域层业务对象,仅包含业务相关属性。
- Service:业务过程实现的组成部分,通过接口和契约联系。
- Control:服务控制器,不同服务之间的切换纽带。
3.2 业务逻辑的四部分
- 领域实体:业务中的对象(属性和行为)。
- 业务规则:完成动作必须满足的条件。
- 数据完整性:某些数据不可少。
- 工作流:业务流程的部分或全部自动化。
3.3 工作流参考模型
工作流管理联盟(WFMC)定义了工作流参考模型的 5个接口(★★★):
💡 使用工作流的优点:将应用逻辑与过程逻辑分离。在不修改具体功能的情况下,通过修改过程模型改变系统功能。
四、 数据访问层设计
数据访问层存在5种经典模式(★★):
- 在线访问(Online Access):最基本,占用一个数据库连接不断与数据源交互。优点是能处理复杂Select且性能好;缺点是业务代码与数据访问代码完全耦合。
- DAO(Data Access Object):将底层数据访问操作与高层业务逻辑分离。对上层提供面向对象的数据访问接口。包含:DAO工厂类、DAO接口、DAO具体实现类、数据传输对象。
- DTO(Data Transfer Object):跨进程或网络边界传输数据的容器。不包含业务逻辑。
- 离线数据模式:数据从数据源获取后,以预定义结构存放在系统中,操作独立于后台数据源。
- ORM(Object-Relation Mapping):在关系型数据库和对象之间作映射(如Hibernate)。将数据库记录转换为对象,方便操作。
💡 连接对象管理(连接池):通过资源池解决资源频繁分配、释放造成的开销。系统初始化时创建连接放入池中,客户请求时复用,释放时不关闭而是放回池中。
五、 数据架构规划与XML存储
- XML文档分类:
- 以数据为中心:结构规则,内容同构,混合内容少(常用于Web数据传输)。
- 以文档为中心:结构不规则,内容零散,混合内容多(常用于网页发布、E-mail)。
- XML存储方式:
- 基于文件:原始文本形式存储。无法获取结构化数据,查询只能返回原始文档。
- 基于数据库:利用数据库技术(并发、一致性约束)。能管理结构化/半结构化数据,支持对文档内部数据操作。
六、 物联网层次架构设计
物联网分为三大层(★★★):
- 感知层:识别物体、采集信息。设备包括二维码识读器、RFID、摄像头、GPS、传感器等。
- 网络层:传递和处理信息。建立在现有的移动通信网和互联网基础上。
- 应用层:信息处理和人机交互。分为应用程序层(数据处理)和终端设备层(人机接口)。
七、 层次架构案例分析
以经典的 PetShop 演进为例:
- PetShop 2.0:没有明显的数据访问层,业务逻辑层与数据访问职责混乱。
- PetShop 3.0:将数据访问逻辑作为单独一层独立出来。
- PetShop 4.0:完全采用“面向接口编程”思想。抽象出
IDAL模块(脱离具体数据库依赖),引入DALFactory专门管理DAL对象的创建(工厂模式),实现了层与层之间的松散耦合。
八、 典型真题解析
真题 1:分层架构思想
分层体现了()思想。
A. 关注点分离 B. 复用 C. 设计 D. 场景
答案:A
解析:分层架构的一个核心特性就是“关注分离”,每层组件只负责本层的逻辑。
真题 2:表现层模式辨析
在表现层设计模式中,允许View和Model直接进行“交流”的模式是()。
A. MVC B. MVP C. MVVM D. UIP
答案:A
解析:MVC允许View和Model直接交流;MVP中通过Presenter通信;MVVM通过ViewModel和双向绑定通信。
真题 3:工作流参考模型
工作流管理联盟(WFMC)将工作流定义为:业务流程的全部或部分自动化。工作流参考模型包括的组件是()。
A. 过程定义工具、工作流引擎、工作流客户端应用、相关应用、管理与监视工具
B. 工作流定义工具、工作流引擎、工作流客户端应用、相关应用、管理与监视工具
C. 工作流定义工具、工作流引擎、工作流客户端应用、工作流API、管理与监视工具
D. 过程定义工具、工作流引擎、工作流客户端应用、工作流API、管理与监视工具
答案:A
解析:WFMC定义的5个接口对应:过程定义工具、客户端应用程序、应用程序调用、工作流机协作、管理与监视工具。
真题 4:物联网感知层
物联网的感知层用于识别物体、采集信息。下列哪项不属于感知层设备()。
A. 摄像头 B. GPS C. 扫描仪 D. 指纹
答案:D
解析:感知层主要是物理世界的数据采集设备(类似五官和皮肤)。指纹是人的生物特征属性,并非直接用于物理世界数据采集的感知层硬件设备。
博主寄语:本章是软考架构师考纲中的“大块头”,无论是选择题还是案例分析题都极易出现。大家务必吃透MVC/MVP/MVVM的区别、业务逻辑层的Domain Model-Service-Control结构、数据访问层的5种模式以及PetShop 4.0面向接口编程的思想。祝大家逢考必过!如果觉得有帮助,欢迎点赞、收藏、留言交流~
本文系统梳理层次式架构设计理论,涵盖N层架构(表现层、中间层、数据访问层、数据层)、MVC/MVP/MVVM模式对比、业务逻辑层的Domain Model-Service-Control结构、数据访问层5种模式(DAO、DTO、ORM等)、工作流参考模型5大接口及物联网三层架构。结合Mermaid图解与真题分析,聚焦软考系统架构设计师高频考点。

805

被折叠的 条评论
为什么被折叠?



