乐趣区

关于设计模式:设计模式21-中介模式

1. 简介

中介模式的英文翻译是 Mediator Design Pattern。
在 GoF 中的《设计模式》一书中,它是这样定义的:

Mediator pattern defines a separate (mediator) object that encapsulates the interaction between a set of objects and the objects delegate their interaction to a mediator object instead of interacting with each other directly.

翻译成中文就是:

中介模式定义了一个独自的(中介)对象,来封装一组对象之间的交互。

实际上,中介模式的设计思维跟中间层很像,通过 引入中介这个中间层,将一组对象之间的交互关系(或者说依赖关系)从多对多(网状关系)转换为一对多(星状关系)。

原来一个对象要跟 n 个对象交互,当初只须要跟一个中介对象交互,从而最小化对象之间的交互关系,升高了代码的复杂度,进步了代码的可读性和可维护性。这里我画了一张对象交互关系的比照图。
!

其中,左边的交互图是利用中介模式对右边交互关系优化之后的后果,从图中咱们能够很直观地看出,左边的交互关系更加清晰、简洁。提到中介模式,有一个比拟经典的例子不得不说,那就是航空管制。

为了让飞机在航行的时候互不烦扰,每架飞机都须要晓得其余飞机每时每刻的地位,这就须要时刻跟其余飞机通信。飞机通信造成的通信网络就会无比简单。这个时候,咱们通过引入“塔台”这样一个中介,让每架飞机只跟塔台来通信,发送本人的地位给塔台,由塔台来负责每架飞机的航线调度。这样就大大简化了通信网络。

退出移动版