中介者模式

Posted by 程序亦非猿 on 2016-08-02

设计模式专题系列: 设计模式

中介者模式

使用中介者模式来集中相关对象之间复杂的沟通和控制方式。

  1. 每个对象都会在自己的状态改变时,告诉中介者
  2. 每个对象都会对中介者锁发出的请求作出回应

没有中介者的情况之下,所有的对象都需要认识其他对象,也即对象之间是紧耦合的.
当有了中介者后,对象之间不需要认识,只需要跟中介者打交道,这样一来对象之间就被解耦了.

中介者包含了整个系统的控制逻辑.

用途:

  1. 中介者常常被用来协调相关的GUI组件

这让我想到了Android中的Activity,在Activity中包含了各种View以及Adapter等对象,Activity也包含了整个系统的控制逻辑,那么我想,Activity就是一个中介者吧!

优点:

  1. 通过将对象彼此解耦,可以增加对象的复用性
  2. 通过将控制逻辑集中,可以简化系统维护
  3. 可以让对象之间所传递的消息变得简单而且大幅减少

缺点:

如果设计不当,中介者本身会变得过于复杂

想想Activity,如果职责一多,两三千行代码,就非常复杂了,缺点也显而易见了