MyEnigma

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

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

Mediatorパターン

Mediatorパターンは、

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

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


具体的には、

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

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

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

出すような形にします。


Mediator以外のクラスは、

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

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

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

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

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


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

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

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

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

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


また、すべてのクラスは

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

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


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

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

cpp/Mediator.cpp at master - AtsushiSakai/cpp

MyEnigma Supporters

もしこの記事が参考になり、

ブログをサポートしたいと思われた方は、

こちらからよろしくお願いします。

myenigma.hatenablog.com