javaでのMediatorパターン

Mediatorパターンはデザインパターンの一つで、複雑に絡み合ったオブジェクト間の関係をMediator(調停者)が整理するパターンです。
例えば、10個のオブジェクト間で連携を取る必要がある場合、オブジェクト同士で直接連携を取ると、「自分以外の9個のオブジェクトに対する調整処理 × 10個のオブジェクト」で90通りの調整処理が必要になってしまいます。
しかし、調停者のオブジェクトを新たに作成し、その調停者を通して調整することにすれば、「調停者に対する調整処理 ×10個のオブジェクト」で10通りの調整処理で済みます。

ある資源に対して作用するプロセスやボタン等が多い場合に効果を発揮するパターンです。

以下、サンプルコードです。
誰かが実施すれば良い作業に対して、複数の作業者が作業しようとする例です。

【サンプルコード】

・Mediator.java

・ConcreteMediatorA.java

・ConcreteMediatorB.java

・Colleague.java

・ConcreteColleagueA.java

・ConcreteColleagueB.java

・MediatorMain.java

【実行結果】


いかがでしたでしょうか。

今回紹介した Mediatorパターンは、前述の通り複数のオブジェクト間の連携が多い時に効果を発揮するパターンです。
調停者クラスを用意して連携を調整するという発想は、自力ではなかなか思い浮かばないと思います。
そこでこのパターンを頭に入れておけば、オブジェクト間の連携が多く処理が煩雑になりそうな場合に、調停者クラスを定義することで整理するという発想が思い浮かぶようになると思います。

StateパターンやCommandパターンをまだ紹介していませんので、これらのパターンも今後紹介していきたいと思います!

カテゴリーjava

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA