乐于分享
好东西不私藏

软考架构师考点速记|DAY67·软件架构风格与模式(纯干货)

软考架构师考点速记|DAY67·软件架构风格与模式(纯干货)
距离上考场只剩最后几天,架构风格与模式这章是不是还在靠死记硬背硬扛?别慌。这章在软考高级里属于**“背熟就能拿分,混淆就丢分”**的典型题型。今天不讲长篇大论,只给你能直接写进答题纸、能一眼看穿选项的速记逻辑+考场避坑指南。建议星标收藏,考前翻三遍,稳稳拿分。👇

🔹 一、五大风格家族:别背分类名,记“数据怎么跑、控制谁主导”

软考官方教程把架构风格划为五大类。考场不要硬记分类标签,用两句话就能串起来:数据流风格看数据走向,调用返回风格看控制流向,独立构件看消息触发,虚拟机看规则模拟,仓库看中心共享。

1️⃣ 数据流风格|数据是绝对主角,像工厂流水线

  • 批处理序列:数据整块进、整块出,中间不交互。适合离线报表、夜间结算。
  • 管道过滤器:数据边流动边被过滤加工,构件无状态、可替换。典型:编译器词法语法分析、音视频编解码流。 ⚠️ 考点:高内聚低耦合,但调试困难、不适合交互式系统

2️⃣ 调用返回风格|控制流是主线,A调B,B返回

  • 主程序/子程序:传统结构化设计,控制集中。
  • 面向对象:对象间通过消息传递协作,强调封装与多态。
  • 层次结构:严格分层(禁止跨层)vs 松散分层(允许相邻跨层)。 ⚠️ 考点:分层最怕循环依赖隐式跨层调用,一旦出现直接扣分。
  • 客户/服务器:请求响应模型。胖客户端逻辑重,瘦客户端逻辑在服务端。

3️⃣ 独立构件风格|构件自己跑,靠事件或通信联动

  • 进程通信:独立进程通过IPC交互。
  • 事件驱动:触发-响应模型,松耦合、异步。典型:GUI框架、物联网设备上报。
  • 隐式调用:构件通过注册表声明兴趣,系统自动回调。 ⚠️ 考点:事件驱动风格 ≠ 观察者模式。风格是宏观架构划分,模式是代码级实现。题干若问架构级选型,写事件驱动

4️⃣ 虚拟机风格|系统人为造执行环境,跑规则或脚本

  • 解释器:执行自定义语言(如规则引擎、DSL解析)。
  • 基于规则系统:条件-动作匹配,适合策略频繁变更场景。
  • 黑板系统:多知识源共享数据区,控制组件调度专家协作。 ⚠️ 考点:适合非确定性、探索性问题(语音识别、故障诊断、军事推演)。题干出现“多算法试探”“结果不确定”“逐步逼近”,直接锁定黑板。

5️⃣ 仓库风格|数据是中心,所有构件围着仓库转

  • 数据库系统:构件通过SQL访问集中存储。
  • 超文本系统:节点与链接构成非线性结构(如Wiki)。
  • 黑板系统(交叉考点):部分真题会归入仓库。区分口诀:强调“多专家协作+控制调度”选虚拟机;强调“中心数据结构+构件依赖数据格式”选仓库。

🔹 二、高频模式速记:场景匹配 + 质量属性权衡

模式题在选择题和案例题中反复出现,核心考法就一句:什么场景配什么模式,换来什么质量,牺牲什么代价。

模式核心特征适用场景代价/注意
分层模式逻辑隔离、层间调用需求频繁变更、多端复用、团队并行性能损耗、跨层管控难
微服务模式独立进程/库、API网关、故障隔离云原生、容器化、跨团队自治、快速试错分布式事务、运维复杂、网络延迟
SOA模式ESB总线、粗粒度、协议统一(SOAP/WSDL)遗留系统包装、跨部门流程打通、企业集成架构重、治理复杂
CQRS模式读写模型分离,常配事件溯源读多写少、复杂报表、强审计追溯最终一致性、架构复杂度上升
MVC模式模型管数据、视图管展示、控制器管路由传统Web/桌面交互系统视图绝不直连数据,控制器是中枢

💡 考场口诀:“改得多用分层,上云用微服,老系统用SOA,读写悬殊用CQRS,经典交互用MVC。”

🔹 三、考场秒杀技巧:选择题+案例题通用公式

🎯 1. 题干关键词一键映射

  • 实时流式处理 → 管道过滤器 / 事件驱动
  • 规则推理 / 不确定求解 → 黑板
  • 异构系统整合 → SOA / 外观 / 适配器
  • 高可用 / 故障隔离 → 微服务 / 舱壁模式
  • 读写分离 / 审计追溯 → CQRS + 事件溯源
  • 团队自治 / 快速迭代 → 微服务 + 康威定律

📝 2. 案例题架构选型“三步踩分法”

阅卷按点给分,三步写满,基本不扣架构设计分:

  • 亮名称:明确写出风格或模式(例:“采用事件驱动架构风格”
  • 扣题干:用原词对应特征(例:“题干指出各模块需异步响应传感器上报,符合事件驱动的松耦合特性”
  • 说收益:补质量属性结论(例:“该选型可显著提升系统的可修改性与可用性”

⚠️ 3. 高频易混陷阱(选择题必考)

  • 管道过滤器 vs 事件驱动:前者数据主动流经构件,后者事件被动触发构件。
  • 分层 vs 微服务:分层是逻辑划分(可同进程),微服务是物理隔离(必须独立部署)。
  • 黑板 vs 数据库:黑板侧重多知识源协作+探索计算,数据库侧重结构化存储+事务一致性
  • SOA vs 微服务:SOA重总线与协议统一,微服务重去中心化与独立生命周期。选项同现时,看题干强调“企业集成”还是“云原生敏捷”。