一、四种架构模型(建模的 4 种思路)
1. 结构模型【最常用】
关键词:构件、连接件、架构描述语言 ADL 通俗理解:把系统拆成一个个组件(构件),组件之间怎么相连(连接件),画出来系统长什么样。 比如微服务里各个服务就是构件,RPC 接口就是连接件。 重点描述:有哪些模块、模块之间怎么连接、有什么约束、是什么架构风格。 核心:静态长什么样,核心工具是架构描述语言 ADL。
2. 框架模型
关键词:不抠细节,看重整体大骨架,面向特定问题 和结构模型很像,但不去纠结每个组件内部细节。只搭大架子,用来解决某一类特定问题。 举例:MVC 框架,只规定分为 Model‑View‑Controller 三大块,不会规定每个类写什么代码。给一类问题提供整体骨架。
3. 动态模型
关键词:大颗粒行为、系统演化、重配置、激励触发 前面结构、框架更多偏向静态;动态模型看系统运行起来会发生什么变化 。 不是普通函数调用那种小动态,是大颗粒级别: 比如系统运行中重新扩容、动态增减服务节点、系统重构配置、启动 / 销毁通信链路。一般由某个事件 / 激励触发发生改变。 定位:是对结构 / 框架模型的补充。静态图纸 + 动态行为 = 完整。
4. 过程模型
关键词:构造系统的步骤、过程脚本 它不描述 "最终系统长啥样",而是描述怎么一步步把系统给搭建出来。 规定先干什么、后干什么,按照一套流程脚本,一步步得到最终架构。
✔小结 4 个模型考点:
- 结构模型:构件 + 连接件,ADL,最普遍直观
- 框架模型:整体骨架,忽略细节,面向特定问题
- 动态模型:系统运行时大粒度行为、重配置、演化
- 过程模型:构建系统的步骤流程
- 四者不是互斥,需要组合使用。
二、4+1 视图(5 个观察视角)
4 个基础视图 + 1 个场景视图,场景用来验证前面 4 个视图。 每个视图只看系统的一个侧面,合在一起才是完整架构。
- 逻辑视角(逻辑视图) 面向功能需求;系统提供什么功能,抽象的模块、类、子系统、服务之间的逻辑关系。
回答:系统功能上分成哪些部分。
- 过程视角(进程视图) 关注运行时,线程、进程、并发、同步、性能吞吐量。
回答:程序跑起来之后,进程线程怎么协作,并发如何处理。
- 开发视角(开发视图 / 实现视图) 面向开发人员,代码如何组织,模块划分、包、库、源码目录,模块如何编译划分。
回答:代码仓库里面代码怎么拆分组织。
- 物理视角(部署视图) 硬件层面,软件部署在哪台服务器、机器、容器,网络如何连接。
回答:各个程序组件安装、跑在哪台机器上。
- +1:场景视图(场景,用例) +1 的那个,起到粘合剂、验证的作用。用关键业务场景 / 用例,去检验逻辑、过程、开发、物理这 4 个视图设计是否合理。看业务流程能不能跑通。
记忆口诀:逻过开物场
逻辑、过程、开发、物理,场景。
🎯概念区分
- 4 种模型:是建模方法(你用什么思路去造模型) 结构、框架、动态、过程。
- 4+1 视图:是观察架构的视角(造好模型,从哪 5 个角度看它) 逻辑、过程、开发、物理 + 场景。