1. 意图
用一个中介对象来封装一系列的对象交互, 中介者使各对象不需要显式地相互引用, 从而使其耦合松散, 而且可以独立地改变它们之间的交互.
2. 适用场景
- 系统中对象之间存在比较复杂的引用关系, 导致它们之间的依赖关系结构混乱而且难以复用该对象
3. 实现
3.1. 参与者
3.2. 结构
3.3. 特点
- 简化了对象之间的关系, 将对象间的关系封装于 Visitor 中
- Visitor 提供了对象间交互的平台, 使原本多对多的关系转化为一对一
- Colleague 可以独立, 易于复用
- 系统将以 Visitor 为中心, 当它出现问题时, 可能影响整个系统
- 新增 Colleague 时, 必须修改 Visitor
3.4. 开发规范
- Colleague 之间的职责必须明确