🌟 引言:当消息通知遇到集中调度
场景痛点:
假设你在开发一个智能家居控制系统,包含多个设备(灯光、空调、安防),需求如下:
- 设备状态变化时通知其他关联设备
- 避免设备间的直接通信依赖
- 动态增删设备不影响整体系统
若仅用观察者模式:
// 传统观察者实现
light.addObserver(ac);
light.addObserver(security);
// 设备间形成网状依赖 ❌
问题暴露:
- 设备间耦合度高
- 新增设备需修改多个类
- 通信逻辑分散难维护
模式组合的价值:
- 集中管理通信:中介者统一协调消息
- 动态订阅机制:观察者实现灵活通知
- 系统扩展无忧:新增设备零修改核心逻辑
📚 一、模式概念回顾
1.1 观察者模式(Observer Pattern)
定义:定义对象间的一对多依赖关系,当一个对象状态改变时,所有依赖它的对象都会自动收到通知。
核心价值:解耦通知方与接收方。
1.2 中介者模式(Mediator Pattern)
定义:用一个中介对象封装一系列对象的交互,使其各对象不需要显式相互引用。
核心价值:将网状通信转为星型结构。