Mediator パターンとは
Mediator パターンを用いると、オブジェクト間の通信は mediator によってカプセル化され、オブジェクト同士で直接通信せず、mediator を介して行うようになる。
mediatorとは、「調停者」「仲介者」という意味。グループにおける「相談役」のようなイメージ。メンバーは出来事を相談役へ報告し、相談役はその報告をもとに判断を下し、各メンバーに指示を出す。mediatorパターンとは以上のようなデザインパターンである。
example
相談者が相談を引き受け、それを元に判断しColleagueへ指示を出すプログラムを考える。以下サンプルコード。
実行結果
$ php Main.php consultation form John ConcreteColleagueTypeB: consulation from John consultation form Sarah ConcreteColleagueTypeA: consulation from Sarah
役割
Mediator役
Colleague役とやり取りを行う、調整を行うためのインターフェース。 サンプルコードにおけるMediatorインターフェース。
ConcreteMediator役
Mediator役のインターフェースを実装し、実際の調整を行う。 サンプルコードにおけるConcreteMediatorクラス。
Colleague役
Mediator役とやり取りを行うインターフェースを定める。 サンプルコードにおけるColleagueインターフェース。
ConcreteColleague役
Colleague役のインターフェースを実装する。 サンプルコードにおけるConcreteColleagueTypeA, ConcreteColleagueTypeBクラス。
まとめ
Mediatorパターンは、複雑に絡みあうオブジェクト相互の通信をやめ、Mediator役に情報を集中させることによって処理を整理する。
関連パターン
- 作者: 結城浩
- 出版社/メーカー: ソフトバンククリエイティブ
- 発売日: 2004/06/19
- メディア: 大型本
- 購入: 51人 クリック: 762回
- この商品を含むブログ (399件) を見る