中介者模式
最后更新于:2022-04-02 04:20:54
[TOC]
## 概述
亦称:调解人、控制器、Intermediary、Controller、Mediator
**中介者模式**是一种行为设计模式,能让你减少对象之间混乱无序的依赖关系。该模式会限制对象之间的直接交互,迫使它们通过一个中介者对象进行合作。
## 中介者模式结构
![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/fb/b7/fbb7cc9e4f3d1f2789109629547aceef_1040x860.png)
1. 组件 (Component) 是各种包含业务逻辑的类。 每个组件都有一个指向中介者的引用, 该引用被声明为中介者接口类型。 组件不知道中介者实际所属的类, 因此你可通过将其连接到不同的中介者以使其能在其他程序中复用。
2. 中介者 (Mediator) 接口声明了与组件交流的方法, 但通常仅包括一个通知方法。 组件可将任意上下文 (包括自己的对象) 作为该方法的参数, 只有这样接收组件和发送者类之间才不会耦合。
3. 具体中介者 (Concrete Mediator) 封装了多种组件间的关系。 具体中介者通常会保存所有组件的引用并对其进行管理, 甚至有时会对其生命周期进行管理。
4. 组件并不知道其他组件的情况。如果组件内发生了重要事件,它只能通知中介者。中介者收到通知后能轻易地确定发送者,这或许已足以判断接下来需要触发的组件了。
## 适合应用场景
1. 当一些对象和其他对象紧密耦合以致难以对其进行修改时, 可使用中介者模式。
2. 当组件因过于依赖其他组件而无法在不同应用中复用时, 可使用中介者模式。
3. 如果为了能在不同情景下复用一些基本行为, 导致你需要被迫创建大量组件子类时, 可使用中介者模式。
';