设计模式------中介者模式
前言
中介者模式(Mediator Pattern):用一个中介对象(中介者)来封装一系列的对象交互,中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。中介者模式又称为调停者模式,它是一种对象行为型模式。
一、UML
二、优点
- Mediator 模式是一种很有用并且很常用的模式,它通过将对象间的通信封装到一个类中,将多对多的通信转化为一对多的通信 , 降低了系统的复杂性。
- Mediator还获得系统解耦的特性 ,通过Mediator ,各个Colleague 就不必维护各自通信的对象和通信协议,降低了系统的耦合性,Mediator 和各个Colleague就可以相互独立地修改了。
- Mediator将模式还有一个很显著的特点就是将控制集中,集中的优点就是便于管理,也正符合了OO设计中的每个类的职责要单一和集中的原则。
三、缺点
- 由于控制的集中化,于是把交互复杂性变为了中介者的复杂性,这就使得中介者会变得比任何一个ConcreteColleague都复杂
四、本质
- 封装交互
五、相关模式
- 外观模式和中介者模式
外观(Facade )模式和中介者(Mediator)模式有着共同的目的。它们都是调配一组相互耦合的对象的通信。不过门面模式关注的是这组复杂对象如何与外界通信,而中介者模式是调配这组复杂对象之间的通模式有着共同的目的。它们都是调配一组相互耦合的对象的通信。不过门面模式关注的是这组复杂对象如何与外界通信,而中介者模式是调配这组复杂对象之间的通信。 - 中介者模式和观察者模式
可以组合使用,来实现当同事对象发生改变的时候,通知中介对象,让中介对象去进行与其他相关对象的交互变的时候,通知中介对象,让中介对象去进行与其他相关对象的交互