也叫订阅发布、事件驱动,核心就是动作之间的 attach
<!-- more -->
## 关键词
| 分类 | 关键词 | 说明 | |
| ----- | ---------------------------- | ------------------- | --- |
| 核心角色 | Observer/Subscriber | 观察者/订阅者,接收通知的一方 | |
| | Subject/Observable/Publisher | 主题/被观察者/发布者,发送通知的一方 | |
| | Listener | 监听器,处理特定事件的组件 | |
| | Handler | 处理器,执行具体响应逻辑 | |
| | Callback | 回调函数,响应事件的具体方法 | |
| | Hook | 钩子,系统预留的定制化接口 | |
| | Event | 事件,触发通知的动作或消息 | |
| | Notification | 通知,传递给观察者的信息 | |
| 动作/行为 | Subscribe/Unsubscribe | 订阅/取消订阅 | |
| | Notify/Publish | 通知/发布消息 | |
| | Register | 注册观察者/监听器 | |
| | Dispatch | 分发事件到对应处理器 | |
| | Emit | 触发/发射事件 | |
| | Watch | 监视数据或状态变化 | |
| | Observe | 观察目标对象变化 | |
| 实现机制 | Event Bus | 事件总线,集中管理事件分发 | |
| | Message Queue | 消息队列,异步事件处理 | |
| | PubSub Pattern | 发布订阅模式,更松散的观察者模式变体 | |
| | Event-Driven | 事件驱动架构 | |
| | Dependency Injection | 依赖注入,解耦观察者和被观察者 | |
| | Loose Coupling | 松耦合,降低组件间依赖 | |
| 应用场景 | Event Handling | 事件处理系统 | |
| | UI Events | 用户界面事件处理 | |
| | State Management | 状态管理系统 | |
| | Change Detection | 变更检测机制 | |
| | Lifecycle Hooks | 生命周期钩子函数 | |
| | DOM Events | DOM事件处理系统 | |
## 场景
polaris 读取 excel 中的数据后,希望对 excel 中的数据格式做一定的检查,如果不满足要求,就抛出异常
## 实现
核心在于 attach 这个词,即一个动作完成,会自动传递到 attach 到它上的其他动作。我们把暴露出的可以被 attach 的一些点称为『钩子』

