定义:用一个中介对象来封装一系列的对象交互;中介者使各对象不需要显示地相互引用,从而使其耦合松散,而且可以独立地改变他们之间的交互。
类图:
说明:Mediator表示抽象中介者,它定义了一个接口用于与各同事对象之间进行通信;ConcreteMediator表示具体中介者,它通过协调各个同事对象来实现协作行为,了解并维护它对各个同事对象的引用;Colleague表示抽象同事类,它定义各同事的公有方法;ConcreteColleague表示具体同事类,其中每一个同事对象都引用一个中介者对象,且每一个同事对象在需要和其他同事对象通信时,只与它的中介者通信,它实现了抽象同事中定义的方法。
优点:
①.降低了系统对象之间的耦合性,使得对象易于独立的被复用。
②.提高系统的灵活性,使得系统易于扩展和维护。
③.使用中介者模式可以将对象间一对多的关联转变为一对一对的关联,使对象间的关系易于理解和维护。
缺点:
中介者模式的缺点是显而易见的,因为这个“中介”承担了较多的责任,所以一旦这个中介者对象出现了问题,那么整个系统就会收到重大的影响。
适用环境:①一组定义良好的对象,现在要进行复杂的通信。②定制一个分布在多个类中的行为,而又不想生成太多的子类。
实例场景:略。