软件体系结构风格与软件体系结构

目录

[软件体系结构风格 全分类](#软件体系结构风格 全分类)

一、经典五大基础架构风格(必考主干)

[1. 数据流风格](#1. 数据流风格)

[2. 调用 / 返回风格](#2. 调用 / 返回风格)

[3. 独立组件风格(无直接调用,靠中间媒介协作)](#3. 独立组件风格(无直接调用,靠中间媒介协作))

[(1)仓库 / 黑板风格](#(1)仓库 / 黑板风格)

(2)隐式调用(事件驱动风格)

[4. 客户 - 服务器(C/S)风格](#4. 客户 - 服务器(C/S)风格)

[5. 虚拟机风格](#5. 虚拟机风格)

二、现代分布式架构风格(工程常用,拓展考点)

三、硬件层面架构(区分软件架构,易混补充)

四、快速归类速记表

五、关键补充说明

主流软件体系结构

一、经典基础体系结构(最常用)

[1. 主程序 - 子程序(典型过程式架构)](#1. 主程序 - 子程序(典型过程式架构))

[2. 分层架构(Layered)](#2. 分层架构(Layered))

[3. 管道 - 过滤器(Pipe-Filter)](#3. 管道 - 过滤器(Pipe-Filter))

[4. 仓库 / 黑板架构(Repository/Blackboard)](#4. 仓库 / 黑板架构(Repository/Blackboard))

[5. 事件驱动架构(隐式调用)](#5. 事件驱动架构(隐式调用))

[6. 客户端 / 服务器(C/S)](#6. 客户端 / 服务器(C/S))

[二、分布式 & 现代架构(互联网 / 云原生主流)](#二、分布式 & 现代架构(互联网 / 云原生主流))

[1. 微服务架构](#1. 微服务架构)

[2. 面向服务架构(SOA)](#2. 面向服务架构(SOA))

[3. 对等网络架构(P2P)](#3. 对等网络架构(P2P))

[4. 云原生 / Serverless(无服务器架构)](#4. 云原生 / Serverless(无服务器架构))

[三、专用 / 特殊架构](#三、专用 / 特殊架构)

[1. 面向对象架构(OO)](#1. 面向对象架构(OO))

[2. 虚拟机架构](#2. 虚拟机架构)

[3. 闭环控制架构](#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 虚拟机、模拟器

二、现代分布式架构风格(工程常用,拓展考点)

基于经典风格演化,多用于大型互联网、微服务场景

  1. SOA 面向服务架构 依托 ESB 服务总线整合异构系统与服务,侧重企业旧系统集成
  2. 微服务架构 按业务域拆分为自治小型服务,独立部署、迭代、扩容
  3. Serverless 无服务器架构 仅编写函数逻辑,由平台管理资源,事件触发执行,运维成本极低
  4. 分布式发布 - 订阅(Pub/Sub) 事件驱动在分布式的落地,依托消息中间件,异步解耦多服务

三、硬件层面架构(区分软件架构,易混补充)

不属于软件架构风格,是计算机硬件体系,常对比考查:

  1. 冯・诺依曼架构:指令 + 数据同内存、统一总线、指令串行驱动(CPU、通用 GPU)
  2. 哈佛架构:指令、数据物理分存,双内存 + 双总线(单片机、DSP)
  3. 神经网络 / 类脑架构:海量轻量计算单元、数据驱动(NPU、TPU、AI 芯片)

四、快速归类速记表

表格

大类风格 核心特征 包含具体架构 / 模式
数据流风格 数据流转驱动 批处理序列、管道 - 过滤器
调用 / 返回风格 显式方法调用 主程序 - 子程序、分层、OO、MVC
独立组件风格 靠数据 / 事件中转 黑板、事件驱动(隐式调用)
客户 - 服务器风格 请求 - 应答、网络交互 C/S、B/S、P2P
虚拟机风格 指令解释、虚拟运行环境 解释器、虚拟机
分布式拓展风格 多节点协同、网络通信 SOA、微服务、Serverless、分布式 Pub/Sub

五、关键补充说明

  1. MVC 定位 :不是独立大类,是分层架构的界面专用变体,归属调用 / 返回风格;
  2. P2P 定位 :属于客户 - 服务器风格的去中心化变种;
  3. 发布订阅:单机版属于事件驱动(隐式调用),跨机器版属于分布式事件驱动;
  4. 混合架构:实际项目大多混用多种风格(如: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. 闭环控制架构

  • 结构:采集数据→计算决策→执行反馈,形成闭环。
  • 场景:工业控制、智能家居、自动驾驶、工控系统。

快速选型速览

  1. 简单小工具 → 主程序 - 子程序
  2. 常规业务 / 网站 → 分层架构、B/S
  3. 流式数据处理 → 管道 - 过滤器
  4. 界面 / 实时消息 → 事件驱动
  5. 大型互联网应用 → 微服务
  6. 多模块智能分析 → 黑板架构
  7. 企业老旧系统集成 → SOA
相关推荐
wanzehongsheng5 小时前
光伏凉亭系统架构设计与工程实践探讨
系统架构
毛小茛5 小时前
系统架构设计师概述
系统架构
圣殿骑士-Khtangc1 天前
系统架构风格选型全景图:REST、GraphQL、gRPC、事件驱动、微内核怎么选?
系统架构
@insist1231 天前
系统架构设计师-系统性能评估核心理论与方法
系统架构·软考·系统架构设计师·软件水平考试
毛小茛1 天前
系统架构概述
系统架构
marsh02061 天前
61 openclaw电商系统架构:从需求到实现的完整方案
ai·系统架构·技术美术
@insist1231 天前
系统架构设计师-计算机系统基础核心考点精析
系统架构·软考·系统架构设计师·软件水平考试
HavenlonLabs2 天前
硬件 + SaaS 产品的工程化路径:从系统架构、PCB 设计到工程样机
网络·安全·架构·系统架构·安全架构