MyEnigma

とあるエンジニアのブログです。#Robotics #Programing #C++ #Python #MATLAB #Vim #Mathematics #Book #Movie #Traveling #Mac #iPhone

C++によるデザインパターン16: Mediatorパターン

増補改訂版 Java言語で学ぶデザインパターン入門

増補改訂版 Java言語で学ぶデザインパターン入門

オブジェクト指向における再利用のためのデザインパターン

オブジェクト指向における再利用のためのデザインパターン

  • 作者: エリックガンマ,ラルフジョンソン,リチャードヘルム,ジョンブリシディース,Erich Gamma,Ralph Johnson,Richard Helm,John Vlissides,本位田真一,吉田和樹
  • 出版社/メーカー: ソフトバンククリエイティブ
  • 発売日: 1999/10
  • メディア: 単行本
  • 購入: 21人 クリック: 711回
  • この商品を含むブログ (212件) を見る


Mediatorパターン

Mediatorパターンは、

複数のクラスが相互に同期して機能するクラス群において、

クラス間の相互作用と一つのクラスにまとめるデザインパターンです。


具体的には、

Mediator(仲介者)と呼ばれるクラスに

他のすべてのクラスの状態(情報)を集めて、

その結果からMediatorが他のすべてのクラスに命令を

出すような形にします。


Mediator以外のクラスは、

自分の状態通知関数と命令関数のみを実装し、

Mediatorクラスが、それぞれのクラスの状態に応じて

命令を下すようにすることにより、

複雑な処理をMediatorクラスのみにまとめることができ、

他のクラスの再利用性を高めることができます。


特にGUIアプリケーションのようなソフトウェアの場合

無数のコンポーネントの相互作用で処理が決まるため、

このMediatorパターンを利用して、

相互作用の部分を一つにクラスにまとめることで、

ソフトの可読性とデバックのしやすさを向上させることができます。


また、すべてのクラスは

Mediatorのみとやりとりをするようにすることにより、

新しいクラスを追加するのが楽になるというメリットもあります。


C++によるサンプルコード

下記のGitHubページにて公開しています。

cpp/Mediator.cpp at master - AtsushiSakai/cpp