Mediator

オブジェクトの振る舞いに関するパターン
調停者


クラスが複雑に絡み合う場合、
それらクラスを統括するクラスを作成し、簡易化させる

たとえばA、B、Cクラスがあり、
AからBが呼ばれ、BからCが呼ばれ、AからもCが呼ばれる。
BからもAが呼ばれる・・・・・・

となった場合、あまりに複雑になってしまう。
これを回避するためにMediatorクラスを作成し、
クラスA〜Cを統括させる。
MediatorクラスをMとする。

MからAが呼ばれ、MからBが呼ばれ、MからCが呼ばれる。
AからB、Cが呼ばれることはないし、
BからA、Cが呼ばれることもない。

シンプルな作りに出来る。

AからBを呼ばなければならない場合は、
A、Bに対し他のデザインパターンを採用するか、
インターフェース経由で限定した機能のみを提供すれば良い。