中介者模式(Mediator Pattern): 用一个终结者对象来封装一系列的对象交互,中介者使各对象不需要显示地相互引用,从而使其耦合松散,而且可以独立地改变他们之间的交互。中介者模式又称为调停者模式,它是一种对象型行为模式。
模式动机:
对于一个模块,可能由很多对象构成,而且这些对象之间可能讯在相互引用的关系,使之成为一个松耦合的系统,我们需要使用中介者模式。
模式分析:
中介者可以使对象之间的关系数量急剧减少,中介者主要承担两方面的职责,中转作用和协调作用,
中转作用就是各个同时对象不需要在显式的引用其他同事,当需要和其他同事通信时,通过中介者即可,该中转作用属于中介在结构上的支持。
协调作用,中介者可以更进一步的对同事之间的关系进行封装,该协调作用属于在行为上的支持。
模式结构:
- Mediator : 抽象中介者
- ConcreteMediator: 具体中介者
- Colleage: 抽象同事类
- ConcreteColleague: 具体同时类
具体类图:
中介者模式的优缺点:
优点:
- 简化了对象之间的交互
- 将各同事解耦
- 减少了子类的生成
- 简化各同事类的设计和实现
缺点:
在具体中介者模式中包含了同事之间的交互细节,可能会导致具体中介者非常复杂,难以维护。