设计模式 - 中介者模式
定义
Define an object that encapsulates how a set of objects interact.
Mediator promotes loose coupling by keeping objects from referring to each other explicitly, and it lets you vary their interaction independently.
UML
实例
MVC,GUI,
- 一些对象和其他对象紧密耦合难以对其进行修改。
- 组件因过于依赖其他组件而无法在不同应用中复用。
- 在不同情景下复用一些基本行为,导致需要创建大量组件子类。
比较
中介者模式、职责链模式、命令模式、观察者模式 用于处理请求发送者和接收者之间的不同连接方式。
比较 | 中介者模式 | 备注 |
---|---|---|
职责链模式 | 中介者消除了发送者和请求者之间的之间连接,强制通过一个中介对象进行间接沟通 | 职责链按顺序将请求动态传递给一系列潜在接收者,直至一名接收者处理请求 |
命令模式 | 命令在发送者和请求者之间建立单向连接 | |
观察者模式 | 中介者是消除一系列系统组件之间的相互依赖。这些组件将依赖于同一个中介者对象。 | 观察者允许接收者动态地订阅或取消接收请求 观察者在对象间建立动态的单向连接,使得部分对象可作为其他对象的附属发挥作用 |
外观模式 | 两者都尝试在大量紧密耦合的类中组织起合作。 中介者将系统中组件的沟通行为中心化 各组件只知道中介者对象,无法直接交互 |
外观为子系统定义一个简单接口,但不提供任何新功能。 子系统不会意识到外观的存在 子系统中的对象可以直接进行交流 |