核心思想
系统由多个独立构件组成,构件之间不直接调用,而是通过事件进行通信 **本质:事件驱动 + 松耦合
子风格
事件驱动(隐式调用)
进程通信
工作机制(事件驱动)
事件源 → 发布事件 → 事件管理器 → 分发事件 → 事件处理器
过程:
- 构件触发事件
- 事件发送给事件管理器
- 事件管理器通知相关构件
- 构件执行处理
- 返回执行结果
特点
- 构件之间不直接交互
- 通过中间机制(事件管理器)通信
- 系统由多个子系统构成
- 每个子系统有自己的事件处理机制
对比:调用返回风格
| 项目 | 独立构件风格 | 调用返回风格 | |
|---|---|---|---|
| 交互方式 | 事件驱动 | 函数调用 | |
| 构件关系 | 不直接交互 | 直接调用 | |
| 耦合性 | 松耦合 | 紧耦合 | |
| 控制方式 | 分散 | 集中 |
优点
- 松耦合
- 可扩展性强
- 可复用性好
缺点
- 控制流程难以预测
- 调试困难
- 数据一致性问题
- 依赖上下文(难推理)
判断方法
- 构件之间没有直接调用 → 是
- 有“事件/消息中心” → 是
- 系统是异步/解耦 → 是
判断方法
- 构件之间没有直接调用 -> 是
- 有【事件/消息中心】 -> 是
- 系统是异步/解耦 -> 是
FAQ
什么是独立构件风格?
一种通过事件机制进行通信的架构风格。
和调用返回风格有什么区别?
独立构件通过事件通信,调用返回通过函数调用。
为什么是松耦合?
因为构件之间不直接依赖彼此。