针对问题

面向对象设计鼓励将行为分布到各个对象中。这种分布可能会导致对象间有许多连接。在最坏的情况下,每一个对象都知道其它所有对象。
而系统设计中,这种相互连接会增加对象间的耦合度,系统将逐渐成为一个难以分割的整体,以至于对系统系统无法进行大的改动。
Mediator模式的作用便是分离“对象”与“对象之间的交互”逻辑。

介绍

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

实现

Mediator模式的静态图如下:

其中:
Mediator定义一个用于与各对象通信的接口(当仅有一个ConcreteMediator时可以不定义Mediator接口)。
ConcreteMediator实现具体通信逻辑并维护通信对象列表。
ConcreteColleague保存Mediator对象的引用,在需要与其他对象通信时,改为与Mediator通信。… Read the rest