跳到主要内容

中介者模式

中介者模式(Mediator Pattern):用一个中介对象(中介者)来封装一系列的对象交互,中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立的改变他们之间的交互。中介者模式又称为调停者模式,它是一种对象行为型模式。

举例

中介者模式将一个网状系统结构编程一个以中介者对象为中心的星型结构,在这个星型结构中,使用中介者对象与其它对象的一对多关系来取代原有对象之间的多对多关系。所有成员通过中介者交互,方便扩展新的成员,例如下面的例子,新增一个聊天室成员只需要新建一个成员实例,然后再在聊天室中介者那注册就可以加入聊天室了。

优点

中介者模式简化了对象之间的交互,它用中介者和同事的一对多交互代替了原来同事之间的多对多交互,一对多关系更容易理解、维护和扩展,将原本难以理解的网状结构转换成相对简单的星型结构。 中介者模式可将同事对象解耦。中介者有利于各同事之间的松耦合,我们可以独立的改变和复用每一个同事和中介者,增加新的中介和新的同事类都比较方便,更好地符合“开闭原则”。 可以减少子类的生成,中介者将原本分布于多个对象间的行为集中在一起,改变这些行为只需生成新的中介者子类即可,这使各个同事类可被重用,无需对同事类进行扩展。

缺点

在具体中介类中包含了大量同事之间的交互细节,可能会导致具体中介者类非常复杂,使得系统难以维护。