復習:Mediator

今回はMediatorパターンの復習です。

Mediatorパターンは、複数のオブジェクトが相互に作用し、状態を変更させるようなときに使用するパターンです。
全てのオブジェクトを統括するクラス(Mediator)を用意します。
個々の部品となるクラス(Colleague)は自分の状態変化を調停者に知らせ、調停者は個々のオブジェクトの状態に応じた全体の状態を調整します。

全ての状態や動作を調停者に記述することで、プログラムの保守性が高くなります。



もし、この個々のクラスの状態による動作を各クラスに記述していると、コードが分散することになり、保守性が低下します。
状態の遷移などが相互に作用するような複雑なアプリケーションを作成する場合、Mediatorパターンを用いたほうがスマートに記述できるのかもしれません。


ColleagueとMediatorの関係
全てのcolleagueは調停者mediatorに変化を知らせるメソッドを持つ、変化を受け取った調停者は変化に対して他のcolleagueを変化させる。
個々のcolleagueが連動して動くとき、その動きを調停者側に全て書き込むことによってコードの分散を防ぎ、保守性を高く保つ。
Mediator自身の動作はアプリケーションに依存しているため、再利用性は低い。
典型例はGUIプログラム