软件体系结构风格主要分为以下五大类:
一、调用 / 返回风格
通过模块之间的调用关系组织系统。 典型代表:
- 主程序 - 子程序(传统结构化程序设计)
- 面向对象(对象间方法调用)
- 层次结构(分层架构,例如 OSI 七层协议栈)
- 客户端 - 服务器(Client/Server 模式)
- C2 架构,依靠构件、连接件之间消息调用。
二、以数据为中心风格
以数据结构为核心,多个模块围绕数据协作。 主要包括:
- 仓库(Repository):共享中央数据库、超文本系统;模块主动读写中心存储进行协作
- 黑板(Blackboard):由黑板、知识源、调度器三部分组成,适合 AI 专家推理系统
三、数据流风格
通过数据在组件间流动建模系统。 典型代表:管道 - 过滤器(还有批处理序列)。
核心:数据沿着管道流过各个过滤器组件,组件只关心输入输出数据流。
四、虚拟机风格
系统构建为可执行指令的解释环境。 典型代表:解释器、基于规则的系统。
核心:自定义一套指令 / 规则,由虚拟机引擎解析执行。例子:正则引擎、专家规则系统。
五、独立构件风格
构件之间相互独立,依靠异步通信交互。 典型代表:
- 事件驱动系统(隐式调用)
- 进程通信
核心:构件之间不直接显式调用,通过事件、消息、进程间通信完成协作。