目录
[二、分大类拆解:软考高频考点 + 易混点辨析](#二、分大类拆解:软考高频考点 + 易混点辨析)
[大类 1:数据流 / 调用返回风格(数据 / 控制流驱动)](#大类 1:数据流 / 调用返回风格(数据 / 控制流驱动))
[大类 2:独立构件风格(松耦合协作)](#大类 2:独立构件风格(松耦合协作))
[大类 3:虚拟机风格(虚拟执行环境)](#大类 3:虚拟机风格(虚拟执行环境))
[大类 4:仓库系统风格(共享数据中心)](#大类 4:仓库系统风格(共享数据中心))
[大类 5:复合 / 混用风格(多风格组合)](#大类 5:复合 / 混用风格(多风格组合))
[大类 6:闭环控制风格(反馈驱动)](#大类 6:闭环控制风格(反馈驱动))
要应对软考中的架构风格考点,核心是抓住
"大类核心特征→子风格关键差异→软考高频考点(特点 / 例子 / 优缺点) 的逻辑链。
一、先明确:软考中架构风格的核心分类逻辑
软考对架构风格的分类,本质是按 "系统中构件(组件)的协作方式" 和 "数据 / 控制流的传递模式" 划分的,每个大类都有明确的 "核心协作模式",这是判断风格类型的第一依据:
大类 | 核心协作模式(判断依据) | 软考高频考查场景 |
---|---|---|
数据流 / 调用返回风格 | 数据按固定流程传递,或通过 "主调 - 被调" 控制流协作 | 基础架构设计、传统系统(如编译器) |
独立构件风格 | 构件间松耦合,通过事件 / 显式消息通信 | 分布式系统、微服务通信 |
虚拟机风格 | 构建 "虚拟执行环境",按规则 / 解释逻辑处理任务 | 语言执行、规则引擎 |
仓库系统风格 | 构件围绕共享数据存储中心协作 | 数据库应用、复杂问题求解(如语音识别) |
复合 / 混用风格 | 混合多种基础风格,适配复杂场景 | 企业级系统(如 B/S、SOA) |
闭环控制风格 | 基于反馈机制持续调整输出,实现 "目标控制" | 实时控制系统(如自动驾驶) |
二、分大类拆解:软考高频考点 + 易混点辨析
每个大类下的子风格,需重点记忆 "核心概念 + 典型例子 + 优缺点(软考易错点) ",以下标注 "★" 为软考高频考点:
大类 1:数据流 / 调用返回风格(数据 / 控制流驱动)
核心特征:数据或控制流按 "线性 / 层级" 路径传递,构件间依赖明确,适合 "流程固定" 的场景。
子风格 | 核心概念 | 软考高频考点(例子 + 优缺点) |
---|---|---|
1.1 批处理风格 | 数据 "一次性输入→批量处理→一次性输出",中间结果落盘,无人工干预(流水线模式) | ★例子:银行夜间跑批(对账 / 计息)、分布式大数据离线作业(Hadoop MapReduce) ★缺点:实时性差、无法动态调整流程 |
1.2 管道 - 过滤器 | 系统拆分为 "过滤器"(数据处理单元)和 "管道"(数据传输通道),数据单向流动 | ★例子:编译器(词法分析→语法分析→语义分析,各阶段为过滤器,数据通过管道传递) ★优点:高内聚、低耦合、易复用 ★缺点:调试难(需跟踪全流程)、交互性差(无法实时反馈) |
1.3 主 / 子程序 | 单线程控制,主程序调用子程序(函数 / 方法),子程序执行完返回结果 | ★例子:C 语言main 函数调用其他函数、Java 中main 方法调用业务方法 ★特点:控制流清晰、单线程(无并发) |
1.4 面向对象 | 构件为 "对象",封装数据和方法,通过消息(方法调用)交互 | ★例子:Java 系统(如 Spring Bean 间调用)、C# 系统★特点:封装性、继承性、多态性(软考常考 "封装" 对应面向对象) |
1.5 层次化架构 | 按 "抽象级别" 分层,上层依赖下层(下层为上层提供服务),层内高内聚 | ★例子:TCP/IP 五层模型(应用层→传输层→网络层→数据链路层→物理层)、Spring 三层架构(Controller→Service→DAO) ★优点:易维护(修改某层不影响其他层)、易扩展★缺点:层间依赖可能僵化(如多层修改需同步调整) |
大类 2:独立构件风格(松耦合协作)
核心特征:构件间无直接依赖,通过 "事件订阅" 或 "显式消息" 通信,适合分布式、高并发场景。
子风格 | 核心概念 | 软考高频考点(例子 + 特点) |
---|---|---|
2.1 事件驱动(隐式调用) | 构件分为 "事件发布者" 和 "事件订阅者",发布者触发事件后,由 "事件总线" 通知订阅者执行(订阅 - 发布模式) | ★例子:GUI 系统(点击按钮→发布 "点击事件"→订阅的弹窗组件执行)、消息队列(如 RabbitMQ 的 topic 模式) ★特点:松耦合(发布者不知订阅者)、易扩展(新增订阅者无需改发布者) |
2.2 进程通信 | 不同进程(或分布式节点)通过 OS 提供的 "显式通信机制" 协作,需明确指定通信对象 | ★例子:微服务间通信(gRPC、HTTP REST)、Linux 管道通信、共享内存 ★特点:通信链路明确(需知道对方地址 / 协议)、适合跨进程 / 跨节点协作 |
大类 3:虚拟机风格(虚拟执行环境)
核心特征:构建 "抽象执行层",屏蔽底层差异,按预设规则或解释逻辑处理任务,适合 "逻辑可配置" 场景。
子风格 | 核心概念 | 软考高频考点(例子 + 特点) |
---|---|---|
3.1 解释器风格 | 包含 "解释器" 和 "脚本 / 字节码",解释器按语法规则逐行解析执行代码 | ★例子:JVM(解释执行字节码)、Python 解释器、Shell 脚本执行 ★特点:跨平台(依赖解释器)、执行效率低于编译型 |
3.2 规则系统 / 专家系统 | 包含 "规则库"(预设业务规则)和 "推理机"(按规则推理决策),支持正向 / 反向链式推理 | ★例子:DROOLS 规则引擎(金融风控规则)、医疗诊断专家系统(根据症状匹配疾病规则) ★特点:逻辑可配置(修改规则无需改代码)、适合复杂决策场景 |
大类 4:仓库系统风格(共享数据中心)
核心特征:所有构件围绕 "共享数据仓库" 协作,数据集中存储,构件通过读写仓库交互,适合 "数据共享需求高" 场景。
子风格 | 核心概念 | 软考高频考点(例子 + 特点) |
---|---|---|
4.1 数据库系统 | 构件通过 SQL 等接口读写 "关系型 / 非关系型数据库",数据按结构化方式存储 | ★例子:MySQL/Oracle 系统(如电商订单库,订单服务、支付服务均读写该库) ★特点:数据一致性高、支持事务 |
4.2 黑板风格 | 构件(知识源)共享 "黑板"(数据 / 中间结果存储区),异步读写黑板,共同解决复杂问题 | ★例子:语音识别系统(声学分析、语法分析等构件异步读写黑板数据)、故障诊断系统 ★特点:适合无固定流程的复杂问题、构件解耦(无需知道其他构件存在) |
大类 5:复合 / 混用风格(多风格组合)
核心特征:混合两种以上基础风格,适配企业级复杂场景,软考中考查频率最高的大类之一。
子风格 | 核心概念 | 软考高频考点(例子 + 易混点) |
---|---|---|
5.1 C2 风格 | 构件仅通过 "连接件" 通信,构件分 "顶部接口"(接收请求)和 "底部接口"(发送请求),支持分布式 | ★例子:可视化控件(如 GUI 中的按钮、文本框,通过连接件传递事件) ★特点:构件完全解耦、易扩展 |
5.2 C/S(客户机 / 服务器) | 分为 "客户端"(交互 + 部分业务逻辑)和 "服务器"(数据存储 + 核心业务),客户端主动请求服务器 | ★例子:QQ 客户端、传统管理系统(如 ERP 客户端) ★易混点:与 B/S 的区别 ------C/S 需安装客户端,B/S 基于浏览器(无需安装) |
5.3 三层 / 多层架构 | 在层次化架构基础上,按 "业务职责" 细分(如表示层→业务逻辑层→数据访问层),各层独立部署 | ★例子:企业级 Web 系统(Vue 前端→Spring Boot 业务层→MyBatis 数据层) ★易混点:与 "层次化架构" 的关系 ------ 三层是层次化的 "具体实现",层次化是更通用的理念 |
5.4 B/S(浏览器 / 服务器) | 客户端为浏览器,所有业务逻辑在服务器端执行,通过 HTTP 协议交互 | ★例子:淘宝网页版、企业 OA 系统(如钉钉网页版) ★优点:无需安装客户端、跨平台 ★缺点:依赖浏览器性能、网络带宽 |
5.5 SOA(面向服务架构) | 将系统拆分为 "服务"(独立业务能力,如支付服务、用户服务),通过 ESB(企业服务总线)通信 | ★例子:电商系统(订单服务、库存服务通过 ESB 交互) ★特点:服务复用性高、松耦合(服务间通过标准接口通信) |
5.6 REST(表述性状态转移) | 面向 "资源"(如用户、订单),通过 HTTP 动词(GET/POST/PUT/DELETE)操作资源,无状态 | ★例子:RESTful API(如GET /users/1 获取用户 1 信息)、微服务间 REST 通信 ★核心考点:无状态(每次请求独立)、面向资源、使用标准 HTTP 方法 |
5.8 异构架构 | 混合多种风格(如部分用 REST、部分用 SOA),适配复杂异构环境 | ★例子:大型互联网系统(前端 B/S + 后端微服务 REST + 数据层数据库系统) ★特点:灵活性高、需解决风格间兼容性 |
大类 6:闭环控制风格(反馈驱动)
核心特征:基于 "反馈机制" 持续检测被控对象状态,调整输出以逼近目标,适合 "实时控制" 场景,软考中考查较少但易与其他风格区分。
子风格 | 核心概念 | 软考高频考点(例子) |
---|---|---|
6.1 过程控制 | 控制器持续采集被控对象数据(如温度、速度),与目标值对比,通过算法调整输出 | ★例子:空调恒温控制(检测室温→对比设定值→启停压缩机)、自动驾驶(检测车速→对比限速→调整油门) |