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.(用一个中介对象封装一系列的对象交互,中介者使各对象不须要显示地相互做用,从而使其耦合松散,并且能够独立地改变它们之间的交互。)架构
一个业务须要多个对象参与,他们之间的依赖关系联系紧密,但却很混乱。优化
一系列的对象依赖关系复杂,层次混乱,那么能够用中介者模式进行重构,抽象对象的关系为中介者与同事类的关系。重构后的架构有一个中介者,多个同时类,原来的每个类都有一个对应的同事类, 完成本身的事情,若是这一个类须要完成的事情须要其余类来协做的话,统一用中介者的方法来代理,中介者该方法的实现实际上就是调用另外一个具体的同事类来完成的。这样能够避免类之间调用关系的混乱。原来的如原来的A->B->C->B->A优化为了A->中介者,B->中介者,C->中介者,而后中介者->A,B,C,D代理