
本文面向软考系统架构设计师考生,系统梳理 Garlan Shaw 经典分类下的五大架构风格——数据流、调用/返回、独立构件、虚拟机、仓库——的核心特征、优缺点与案例题关键词。文章将提供速查表、对比表格、分类总览图与可直接套用的答题模板,帮助读者考前速览、考时直接套用,稳稳拿下案例分析题。🔄 一、数据流风格核心特征:数据按顺序流经多个处理步骤,前一个构件的输出作为后一个构件的输入。批处理序列特点:以完整数据集为单位传递,前一阶段全部完成后,下一阶段才开始。优点:结构简单,中间结果可保存并重复使用。缺点:实时性差,中间文件带来较大的存储与 I/O 开销。典型场景:银行日终结算、工资批量计算、月度报表、离线日志统计、ETL 批量处理。管道-过滤器(高频考点)特点:过滤器为构件、管道为连接件;流式数据、增量处理、支持流水线并行;过滤器之间无共享状态。优点:松耦合、可复用、隐蔽性好,新增过滤器不影响其他模块。缺点:交互性差,不适合交互式应用;数据格式转换有性能开销;大量共享状态时不适用。典型场景:编译器、UNIX shell、日志流处理、音视频处理、数据清洗。案例题关键词:看到"数据流"“逐级处理”“过滤器”“管道”"编译器"→ 优先选管道-过滤器。📞 二、调用/返回风格核心特征:构件之间通过显式调用与返回机制协作。主程序/子程序特点:主程序控制整体流程,子程序完成具体任务后返回结果;单线程控制。优点:结构简单,控制明确。缺点:调用链过长后,复用和修改困难。典型场景:小型工具程序、过程式开发。面向对象风格特点:对象封装数据和操作,通过方法调用交互。优点:封装降低外部依赖,职责清晰、便于复用和维护,修改内部实现对调用方影响小。缺点:对象间调用过多时,仍会形成复杂依赖。典型场景:Java/C++ 应用系统。分层架构(最高频考点)特点:每层只依赖下层提供的服务,常见如 表现层→业务层→数据访问层→数据库。优点:职责分明、逐层抽象、易扩展、支持复用、团队分工清晰。缺点:跨层调用降低性能,层数过多时整体性能下降,并非所有系统都适合分层。典型场景:Web 系统、企业级业务系统、OSI 七层模型、TCP/IP 协议栈。案例题答题格式:每种风格都要分析,不只写你选的那个。格式为"XX 风格灵活性高/低,因为……,所以本场景采用 XX 风格"。🔔 三、独立构件风格核心特征:构件彼此独立,通过事件或消息进行异步通信,无显式调用。进程通信特点:构件是独立进程,连接件是消息传递。事件驱动(隐式调用)特点:构件触发/广播事件,其他构件注册监听并响应;发布者不知道订阅者的存在。优点:松耦合、异步解耦、适合高并发,新增模块只需注册事件,无需修改主流程。缺点:构件放弃对系统计算的控制,调试困难,处理顺序不确定。典型场景:GUI 系统、消息队列、微服务事件总线、通知系统。案例题关键词:看到"事件通知"“订阅”“消息队列”“异步”"解耦"→ 选事件驱动/独立构件风格。🖥️ 四、虚拟机风格核心特征:在人为构建的抽象执行环境中,解释并执行自定义规则。解释器特点:解释引擎 + 存储区 + 2 个数据结构;仿真硬件执行。优点:灵活性强、可移植性好。缺点:执行效率低。典型场景:脚本语言解释器、正则引擎、虚拟机。基于规则的系统特点:规则集 + 规则解释器 + 选择器 + 工作内存。优点:规则灵活可变,适合非确定性场景。缺点:规则冲突难以处理、效率低。典型场景:AI 专家系统、决策支持系统(DSS)、柔性制造。案例题关键词:看到"规则解释"“解释执行”“专家系统”"脚本"→ 选虚拟机风格。🗄️ 五、仓库风格核心特征:以数据为中心,多个构件围绕共享数据协作。数据库系统特点:中央共享数据源 + 独立处理单元,构件通过读写仓库间接通信。优点:数据集中管理,各构件可独立开发。缺点:仓库成为性能瓶颈,构件与仓库耦合度高。典型场景:IDE(中心数据是语法树)、信息系统。黑板系统(高频考点)三要素:知识源 + 黑板 + 控制器。特点:黑板是知识源互动的唯一媒介,多知识源共享黑板数据。适用场景:没有确定性算法的问题。典型应用:语音识别、图像处理、信号处理、编译器优化。案例题关键词:看到"知识源"“共享数据”“黑板”"没有确定性算法"→ 选黑板系统。📊 五大架构风格对比速览架构风格核心特征典型场景案例题关键词优缺点速记数据流(管道-过滤器)数据按顺序流经多个处理步骤,前构件输出作为后构件输入编译器、UNIX shell、日志流处理、音视频处理、数据清洗“数据流”“逐级处理”“过滤器”“管道”“编译器”松耦合、可复用、隐蔽性好;交互性差、不适合交互式应用调用/返回(分层架构)构件间显式调用与返回,每层只依赖下层服务Web 系统、企业级业务系统、OSI 七层模型、TCP/IP 协议栈“层次”“UI/业务/数据三层”职责分明、易扩展、团队分工清晰;跨层调用降低性能独立构件(事件驱动)构件独立,通过事件/消息异步通信,无显式调用GUI 系统、消息队列、微服务事件总线、通知系统“事件通知”“订阅”“消息队列”“异步”“解耦”松耦合、异步解耦、适合高并发;调试困难、处理顺序不确定虚拟机(解释器/规则)在抽象执行环境中解释并执行自定义规则脚本语言解释器、正则引擎、AI 专家系统、DSS“规则解释”“解释执行”“专家系统”“脚本”灵活性强、可移植性好;执行效率低、规则冲突难处理仓库(黑板系统)以数据为中心,多构件围绕共享数据协作语音识别、图像处理、信号处理、编译器优化“知识源”“共享数据”“黑板”“没有确定性算法”数据集中管理、构件独立开发;仓库易成性能瓶颈、耦合度高下面是五大架构风格的分类总览图,便于考前快速建立整体框架: