设计模式-中介者模式

定义

中介者模式(Mediator Pattern):定义一个中介对象来封装一系列对象之间的交互。中介者使各个对象不需要显示地相互引用,从而使其耦合性松散,而且可以独立地改变他们之间的交互。

模式结构

此处引用中介者模式的一段话。

  1. Mediator:抽象中介者。在里面定义各个同事之间交互需要的方法,可以是公共的通信方法,也可以是小范围的交互方法。
  2. ConcreteMeditor:具体中介者。它需要了解并维护各个同事对象,并负责具体的协调各同事对象的交互关系。
  3. 同事类:如果一个对象会影响其他的对象,同时也会被其他对象影响,那么这两个对象称为同事类。在类图中,同事类只有一个,这其实是现实的省略,在实际应用中,同事类一般由多个组成,他们之间相互影响,相互依赖。同事类越多,关系越复杂。并且,同事类也可以表现为继承了同一个抽象类的一组实现组成。在中介者模式中,同事类之间必须通过中介者才能进行消息传递。
  4. Colleague:抽象同事类,主要约束同事对象的类型,并实现一些具体同事类之间的公共功能,比如,每个具体同事类都应该知道中介者对象,也就是具体同事类都会持有中介者对象,都可以到这个类里面。
  5. ConcreteColleague:具体同事类,实现自己的业务,需要与其他同事通信时候,就与持有的中介者通信,中介者会负责与其他同事类交互。

优缺点

优点

  1. 松散耦合
  2. 集中控制交互
  3. 多对多变为一对多

缺点

  • 过多集中化。中介者的复杂度会随同事对象的交互复杂度提高。

实际应用

为防止依赖的第三方组件库出现问题,可以通过中介者模式,松散系统与第三方UI库的耦合。通过“釜底抽薪”的模式,替换出问题的具体组件,或者逐步替换第三方组件。


 上一篇
架构模式-MVC 架构模式-MVC
MVC好的MVC架构,能实现View与Model层的分离、可替代。拥有条理、逻辑清晰的代码结构。 简介与架构理念 MVC 是一种使用 MVC(Model View Controller 模型-视图-控制器)设计创建 Web 应用程序的模式。
2020-03-13
下一篇 
设计模式 设计模式
定义设计模式是为特定场景下的问题而定制的解决方案。特定场景指问题所在的重复出现的场景,问题指特定环境下你想达成的目标。同样的问题在不同的环境下会有不同的限制和挑战。定制的解决方案是指在特定环境下克服了问题的限制条件而达成目标的一种设计。 分
2020-03-12
  目录