设计模式——中介者模式

Posted winsons

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了设计模式——中介者模式相关的知识,希望对你有一定的参考价值。

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

二、UML示意图

技术图片

 

 

 定义一个抽象Colleague类,他持有一个Mediator对象,每一个具体Colleague类继承自抽象Colleague类,并且可通过Mediator对象与其他对象做交互。具体中介者类ConcreteMediator可继承自抽象Mediator实现不同的具体中介者类。

三、优缺点

优点:

  • 减少了各个对象的耦合,使得可以独立地改变和复用各个对象类和中介类
  • 把各对象之间多对多的关系转化为多个对象对一个中介者的一对多关系,使得系统更容易被理解和实现。
  • 对象之间的交互都被封装到了中介者里,所以当对象之间的交互行为发生变化时只需要改中介者就好。

缺点:

  • 当中介者要处理的交互对象多了的时候,中介者类会变得很复杂且庞大,使得难以维护
  • 因为对象间的交互全都通过中介者,所以中介者担当责任很大,当中介者出现问题,整个系统都会受到波及。

以上是关于设计模式——中介者模式的主要内容,如果未能解决你的问题,请参考以下文章

Python 设计模式 — 行为型模式 — 中介者模式

设计模式中介者模式 ( 简介 | 适用场景 | 优缺点 | 代码示例 )

手撸golang 行为型设计模式 中介者模式

设计模式--14中介者模式

重学设计模式(三设计模式-中介者模式)

重学设计模式(三设计模式-中介者模式)