设计模式-中介者模式(Mediator)

中介者模式的目的是什么呢?

    用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。


中介者模式的结构

image.png

上图就是一个典型的中介者模型的结构图了,从图中我们也可以看出,中介者模式主要分了两大类的角色:
1、中介者:结构图里的中介者主要包含,中介者接口,中介者实现类。中介者的主要职责,通过协调各个同事对象实现协作行为。
2、Colleague Class(同事类):同事类中主要包含自己的行为,以及与中介者之间的通信方式。

中介者模式的优缺点

优点
1、减少了子类的生成,Mediator将原本分布于对象间的行为集中在一起。改变这些行为只需生成Mediator的子类即可。这样各个Colleague类可被重用。
2、它将各个Colleague解耦,这个优点很明显,各个Colleague不需要相互依赖,对于扩展性和复用性都提供了极大的便利。
3、它简化了对象协议:从Colleague之间多对多的关系,到Mediator与Colleague之间一对多的关系,便于理解,维护和扩展。
4、它对对象如何协作进行了抽象。
缺点
1、它使控制集中化:过多的逻辑集中在中介者类中,使中介者类维护起来比较麻烦。

实现

    我们日常的项目中用到中介者模式的地方还是比较多的,比如:我们在用Dubbo实现各个业务系统之前通信时,必不可少的就是注册中心了,我们把各个业务系统的依赖关系都写到了注册中心中,让注册中心帮我们管理。这里就先不写具体的实现了,等写到观察者模式的时候,会结合观察者模式,写一个Demo。毕竟他们两个一起出镜的几率还是很高的。

你可能感兴趣的:(设计模式-中介者模式(Mediator))