Design Pattern | Observer Pattern(オブザーバーパターン)

Observerパターンとは?

  • Observerという英単語は観察者という意味である。
  • Observerパターンは、観察対象の状態が変わったときに観察者へ通知する方式である。
  • Observerパターンは、状態変化に応じた処理を記述するときに有効である。
  • オブジェクトの状態変化を観察する観察者、つまりオブザーバーの一覧をオブジェクトに登録し、状態変化があるたびにメソッドなどを通じてオブジェクトが直接各オブザーバーへ通知するデザインパターンである。
  • 主に分散イベントハンドリングシステムの実装に使われる。発行/購読モデルとしても知られている。
  • GoFのデザインパターンでは、振る舞いに関するデザインパターンに分類される。

Observerパターンのサンプルプログラム

ランダムに数字を生成し、その変化に応じて「数字」および「*」を表示するプログラムである。

Class Diagram
Observer Pattern Class Diagram

例では、Observerインターフェース、観察者へ通知する生成器、生成された値を異なる方法で表示する具象Observerを定義する。

メリット

観察対象と観察者を疎結合にできる。対象を変更せずに新しいObserverを追加でき、1つの状態変化に複数の反応を接続できる。