- 数据流风格:数据单向流动
- 批处理:原材料一批一批加工,做完一批再下一批。✅简单可靠;❌实时差,不能交互
- 管道 - 过滤器:管道传数据,过滤器负责加工。✅组件解耦、可复用;❌不支持交互,不能回退
- 调用 / 返回风格:主动调用,执行完返回结果
- 主程序 / 子程序:主流程调用子程序,线性调用。✅简单直观;❌耦合高,难扩展
- 面向对象:对象互相调用方法,封装数据。✅封装好;❌对象依赖复杂
- 分层架构:层层调用,下层给上层服务。✅职责清晰;❌跨层麻烦,一层故障容易连锁影响
- 独立构件风格:构件独立,互相通信
- 进程通信:多个独立进程互相发消息调用。✅独立部署;❌通信不稳定,要处理网络异常
- 事件驱动:发布事件,订阅者响应。✅松耦合,易扩展;❌流程难追踪,调试困难
- 虚拟机风格:自定义一套指令解释执行
- 解释器:翻译自定义脚本 / 指令执行。✅灵活,自定义语法;❌性能低
- 规则系统:内置业务规则引擎。✅业务规则可动态改;❌规则复杂后难维护
- 以数据为中心风格:围绕共享数据存储
- 数据库:共享库,读写数据表。✅数据统一;❌并发锁冲突
- 黑板:公共数据区,多个模块读写黑板数据。✅多方共享;❌竞争读写,同步难
- 超文本:网状链接式数据(网页)。✅灵活跳转;❌不好管控流程
软考架构风格 自测题(5 道单选)
-
数据单向依次加工,组件不直接交互,适合大批量离线数据处理,是什么风格? A 调用返回 B 数据流 C 虚拟机 D 以数据为中心
-
分层架构、面向对象都属于哪一类架构风格? A 数据流 B 调用 / 返回 C 独立构件 D 虚拟机
-
发布消息,感兴趣的组件自动响应,链路难追踪,调试麻烦是? A 事件驱动 B 管道过滤器 C 黑板 D 解释器
-
可以自定义脚本语言,动态解析执行,缺点性能较差的是? A 批处理 B 规则系统 / 解释器 C 数据库 D 进程通信
-
多个模块读写同一个公共共享存储区,存在并发竞争问题,黑板属于? A 独立构件 B 数据流 C 以数据为中心 D 调用返回
1.B 2.B 3.A 4.B 5.C
架构风格 易混淆坑题(单选 5 道)
-
【坑】将数据分成块,沿着管道传递,过滤器各自独立处理,不共享状态,该架构风格是() A 批处理 B 管道 - 过滤器 C 黑板 D 事件驱动
-
【坑】属于调用 / 返回风格,把系统划分多层,上层只能依赖下层,职责分离,指() A 进程通信 B 分层架构 C 黑板 D 规则系统
-
【坑】多个独立程序,通过消息传递互相协作,构件完全独立,属于独立构件风格的是() A 进程通信 B 批处理 C 数据库 D 解释器
-
【坑】业务规则不用改代码就能动态调整,但是规则复杂后很难维护,属于虚拟机风格() A 超文本 B 规则系统 C 管道过滤器 D 面向对象
-
【坑】网状关联数据,点击链接跳转,属于以数据为中心风格的() A 黑板 B 数据库 C 超文本 D 事件驱动
1.B 2.B 3.A 4.B 5.C
软考架构风格 简答题(背诵默写)
适合系统架构设计师
- 简述数据流风格,包含两类子风格及其特点。
<details> <summary>参考答案</summary> 数据流风格:数据单向流转加工。 ①批处理:批量数据依次处理,一批完成再处理下一批;优点简单稳定,缺点实时性差。 ②管道-过滤器:管道传输数据,过滤器独立处理;组件解耦可复用,缺点不支持交互,无法回退。 </details>
- 简述调用 / 返回风格,包含三类子风格及其特点。
<details> <summary>参考答案</summary> 调用/返回:构件主动调用,调用完成返回结果。 ①主程序/子程序:主流程调用子程序,线性执行;简单直观,耦合高。 ②面向对象:对象封装数据,通过方法互相调用;封装性好,依赖关系容易复杂。 ③分层架构:分层组织,上层依赖下层;职责清晰,一层故障容易连锁影响。 </details>
- 简述独立构件风格,包含两类子风格及其特点。
<details> <summary>参考答案</summary> 独立构件:构件相互独立,依靠消息通信协作。 ①进程通信:多个独立进程之间消息交互;构件独立部署,需要处理通信异常。 ②事件驱动:发布事件,订阅组件响应;松耦合易扩展,缺点调用链路难追踪,调试困难。 </details>
- 简述虚拟机风格,包含两类子风格及其特点。
<details> <summary>参考答案</summary> 虚拟机:构建虚拟执行环境,解析自定义指令。 ①解释器:解析自定义脚本指令;灵活支持自定义语法,性能较差。 ②规则系统:业务规则引擎;业务规则可动态修改,规则复杂后难以维护。 </details>
- 简述以数据为中心风格,包含三类子风格及其特点。
<details> <summary>参考答案</summary> 以数据为中心:围绕共享公共数据存储。 ①数据库:共享数据表;数据统一管理,存在并发争抢冲突。 ②黑板:公共数据区域,多个模块读写;支持多方共享,读写同步困难。 ③超文本:网状链接数据,支持跳转;数据跳转灵活,业务流程不好管控。 </details>
可选简答(拔高真题风格)6. 对比事件驱动架构和管道 - 过滤器架构的优缺点。
<details> <summary>参考答案</summary> 管道过滤器:数据单向流,组件解耦;但是缺少交互,流程固定。 事件驱动:基于事件广播,松耦合、易扩展;但是调用链路不直观,排查问题难度大。 </details>