目录
软件体系结构风格 全分类
一、经典五大基础架构风格(必考主干)
1. 数据流风格
2. 调用 / 返回风格
3. 独立组件风格(无直接调用,靠中间媒介协作)
(1)仓库 / 黑板风格
(2)隐式调用(事件驱动风格)
4. 客户 - 服务器(C/S)风格
5. 虚拟机风格
二、现代分布式架构风格(工程常用,拓展考点)
三、硬件层面架构(区分软件架构,易混补充)
四、快速归类速记表
五、关键补充说明
主流软件体系结构
一、经典基础体系结构(最常用)
1. 主程序 - 子程序(典型过程式架构)
2. 分层架构(Layered)
3. 管道 - 过滤器(Pipe-Filter)
4. 仓库 / 黑板架构(Repository/Blackboard)
5. 事件驱动架构(隐式调用)
6. 客户端 / 服务器(C/S)
二、分布式 & 现代架构(互联网 / 云原生主流)
1. 微服务架构
2. 面向服务架构(SOA)
3. 对等网络架构(P2P)
4. 云原生 / Serverless(无服务器架构)
三、专用 / 特殊架构
1. 面向对象架构(OO)
2. 虚拟机架构
3. 闭环控制架构
快速选型速览
软件体系结构风格 全分类
结合高校教材、软考、面试通用分类,按「经典五大架构风格 + 衍生 / 现代分布式风格」完整梳理,同时标注归属、核心、示例,衔接你之前学的所有知识点,条理清晰方便背诵。
一、经典五大基础架构风格(必考主干)
1. 数据流风格
核心:数据流动驱动执行,组件为数据加工单元,无直接函数调用
- 批处理序列:整块数据串行处理,上一步完成才执行下一步
- 管道 - 过滤器:数据分片流式传输,流水线并行,组件为过滤器、连接件为管道 示例:Shell 命令、编译器、ETL、日志分析
2. 调用 / 返回风格
核心:显式函数 / 方法调用,流程由代码主动控制,最通用
- 主程序 - 子程序:自上而下分层调用,常共用全局数据 示例:老式过程式程序、小型工具
- 分层架构:垂直分层,层间单向依赖、禁止跨层乱调用 衍生:MVC、MVP、MVVM(界面专用分层变体)、传统三层架构 示例:Web 系统、企业管理软件
- 面向对象风格:数据 + 行为封装为对象,对象间方法调用协作,自带状态 示例:绝大多数桌面、后端、APP 软件
3. 独立组件风格(无直接调用,靠中间媒介协作)
(1)仓库 / 黑板风格
组件只读写全局共享数据区,彼此不交互 示例:IDE、专家系统、AI 分析平台
(2)隐式调用(事件驱动风格)
基于事件总线 / 消息队列,发布 - 订阅模式,事件触发执行(隐式调用) 示例:GUI 界面、消息推送、物联网、监控系统
4. 客户 - 服务器(C/S)风格
核心:请求 - 应答交互,分布式基础形态
- 两层 C/S:客户端、服务端角色固定
- 多层 C/S:拆分网关、应用服务等多层
- B/S(浏览器 / 服务器):C/S 特例,浏览器作为通用客户端
- P2P 对等网络:C/S 变种,去中心化,每个节点同时是客户端 + 服务端 示例:网站、传统客户端、P2P 下载、区块链
5. 虚拟机风格
核心:模拟独立运行环境,解释 / 执行指令与自定义语言
- 解释器风格:解析并执行脚本、规则、自定义语法 示例:脚本引擎、规则引擎、编译器前端
- 虚拟机:构建隔离运行环境,上层代码在虚拟环境执行 示例:JVM、Python 虚拟机、模拟器
二、现代分布式架构风格(工程常用,拓展考点)
基于经典风格演化,多用于大型互联网、微服务场景
- SOA 面向服务架构依托 ESB 服务总线整合异构系统与服务,侧重企业旧系统集成
- 微服务架构按业务域拆分为自治小型服务,独立部署、迭代、扩容
- Serverless 无服务器架构仅编写函数逻辑,由平台管理资源,事件触发执行,运维成本极低
- 分布式发布 - 订阅(Pub/Sub)事件驱动在分布式的落地,依托消息中间件,异步解耦多服务
三、硬件层面架构(区分软件架构,易混补充)
不属于软件架构风格,是计算机硬件体系,常对比考查:
- 冯・诺依曼架构:指令 + 数据同内存、统一总线、指令串行驱动(CPU、通用 GPU)
- 哈佛架构:指令、数据物理分存,双内存 + 双总线(单片机、DSP)
- 神经网络 / 类脑架构:海量轻量计算单元、数据驱动(NPU、TPU、AI 芯片)
四、快速归类速记表
表格
| 大类风格 | 核心特征 | 包含具体架构 / 模式 |
|---|---|---|
| 数据流风格 | 数据流转驱动 | 批处理序列、管道 - 过滤器 |
| 调用 / 返回风格 | 显式方法调用 | 主程序 - 子程序、分层、OO、MVC |
| 独立组件风格 | 靠数据 / 事件中转 | 黑板、事件驱动(隐式调用) |
| 客户 - 服务器风格 | 请求 - 应答、网络交互 | C/S、B/S、P2P |
| 虚拟机风格 | 指令解释、虚拟运行环境 | 解释器、虚拟机 |
| 分布式拓展风格 | 多节点协同、网络通信 | SOA、微服务、Serverless、分布式 Pub/Sub |
五、关键补充说明
- MVC 定位:不是独立大类,是分层架构的界面专用变体,归属调用 / 返回风格;
- P2P 定位:属于客户 - 服务器风格的去中心化变种;
- 发布订阅:单机版属于事件驱动(隐式调用),跨机器版属于分布式事件驱动;
- 混合架构:实际项目大多混用多种风格(如:B/S + 分层 + MVC + 事件驱动)。
主流软件体系结构
主流软件体系结构,分经典基础架构、分布式架构、特殊架构三大类,附核心特点、典型场景,简洁好记。
一、经典基础体系结构(最常用)
1. 主程序 - 子程序(典型过程式架构)
- 结构:主程序逐层调用子程序,自上而下执行,常共享全局数据。
- 特点:结构简单、紧耦合、流程固定。
- 场景:小型工具、简单桌面程序、传统单体软件。
2. 分层架构(Layered)
- 结构:按职责垂直分层(表现层→业务层→数据层),层间单向依赖。
- 特点:职责清晰、易分工、易维护。
- 场景:Web 系统、企业管理软件、后端业务系统。
3. 管道 - 过滤器(Pipe-Filter)
- 结构:过滤器处理数据,管道传输数据流,组件独立、无共享状态。
- 特点:数据流驱动、可拼接、易复用、天然支持流水线。
- 场景:编译器、Shell 命令、ETL、日志分析、音视频处理。
4. 仓库 / 黑板架构(Repository/Blackboard)
- 结构:以中央共享数据仓库为核心,所有组件读写仓库,互不直接通信。
- 特点:组件高度解耦,依赖全局数据。
- 场景:专家系统、AI 推理、IDE、数据挖掘。
5. 事件驱动架构(隐式调用)
- 结构:基于事件总线 / 消息队列,组件发布 / 订阅事件,异步触发执行。
- 特点:异步、松耦合、响应灵活,流程不固定。
- 场景:GUI 界面、物联网、监控告警、消息中间件。
6. 客户端 / 服务器(C/S)
- 结构:客户端发起请求,服务端统一处理响应,主从模式。
- 衍生:B/S(浏览器 / 服务器,C/S 特例)。
- 场景:桌面客户端、网站、APP、远程服务。
二、分布式 & 现代架构(互联网 / 云原生主流)
1. 微服务架构
- 结构:按业务域拆分为独立小型服务,可单独部署、扩容、迭代,通过网关 / 接口 / 消息互通。
- 特点:去中心化、高可用、弹性伸缩,运维复杂度高。
- 场景:大型互联网平台、电商、支付、中台系统。
2. 面向服务架构(SOA)
- 结构:以ESB 企业服务总线为核心,整合异构服务,统一协议与路由。
- 特点:侧重企业系统集成、协议统一,偏传统大型政企系统。
3. 对等网络架构(P2P)
- 结构:无中心服务器,节点互为客户端与服务端,点对点通信。
- 特点:去中心化、容错强、负载分散。
- 场景:文件传输、直播、区块链、分布式下载。
4. 云原生 / Serverless(无服务器架构)
- 结构:开发者只写函数逻辑,无需管理服务器,按调用计费。
- 特点:运维极简、弹性极强。
- 场景:短时任务、接口服务、触发器类应用。
三、专用 / 特殊架构
1. 面向对象架构(OO)
- 结构:以对象、类、继承、组合为核心,封装数据与行为。
- 特点:模块化、可复用,多数现代架构的基础实现方式。
2. 虚拟机架构
- 结构:宿主程序模拟独立运行环境,隔离执行代码。
- 场景:Java 虚拟机、Docker 容器、模拟器。
3. 闭环控制架构
- 结构:采集数据→计算决策→执行反馈,形成闭环。
- 场景:工业控制、智能家居、自动驾驶、工控系统。
快速选型速览
- 简单小工具 → 主程序 - 子程序
- 常规业务 / 网站 → 分层架构、B/S
- 流式数据处理 → 管道 - 过滤器
- 界面 / 实时消息 → 事件驱动
- 大型互联网应用 → 微服务
- 多模块智能分析 → 黑板架构
- 企业老旧系统集成 → SOA