中介者模式也叫做调停者模式。当一个对象要和多个对象交流,有时候会出现很混乱的时候。这时候,就需要加入一个中心,类似联合国这样的机构,所有的类都和中心交流,中心说怎么处理就怎么处理。
一、优点
中介者模式的优点就是减少类间的依赖,把原本的一对多关系变成一对一的关系,Colleague同事类只依赖中介者,减少了依赖,同时也降低了类的耦合。
二、缺点
最大的缺点就是中介者责任大,代码会变得很多,而且逻辑复杂,原本N个对象直接的相互依赖关系转换为中介者和Colleague类的依赖关系,当Colleague类很多的时候,中介者的代码逻辑就会变得很复杂。
三、使用场景
类与类之间的依赖关系必然是存在的,一个类依赖多个类的情况也是普遍存在的。那是不是说当有多个依赖关系存在就得使用中介者模式呢?虽然中介者在某些情况下能将原本凌乱的逻辑整理得清清楚楚,但他的缺点也是明显存在的。就好像原来就简单的几个对象依赖关系,为了设计模式而使用设计模式,强行使用中介者模式,无疑使原本的逻辑更复杂而已。中介者模式适用于多个对象之间紧密耦合的情况,那就是:在类图中出现了蜘蛛网状的结构,在这个情况下就一定要考虑是否使用中介者模式,这有利于将蜘蛛网梳理为星型结构,使原本复杂混乱的关系更多清晰简单。
四、实际应用
MVC框架:我们使用最多的MVC框架,其中的Controller就是一个中介者,它的作用就是把Model和View隔离开,协调Model和View协同工作,把Model运行的结果和View视图融合成一个页面,减少Model和View的依赖关系。