MyEnigma

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

C++によるデザインパターン17: Observerパターン

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

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

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

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

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


Observerパターン

Observerパターンは、

観察対象のクラスの状態が変化した時に、

観察者クラスに通知を実施するような

デザインパターンです。


観察対象のクラスは事前に

観察者クラスのポインタを保持しておき、

自分自身の状態が変化した時に

そのポインタを元に自分のポインタ(This)を関数で渡すことで、

状態の変化を通知します。


一見、このObserverパターンは、

Mediatorパターンに似ていますが、

通知する先のObserverが複数になることがあり、

(Mediatorの調停役は基本一つ)

それらが通知により同期して動くことが、

Observerパターンの目的となります。


またこのObserverパターンは、

Publish-Subscribeパターンとも呼ばれます。

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

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

cpp/Observer.cpp at master - AtsushiSakai/cpp