メインコンテンツへ
開発技術デザインパターン(Observer)

GoFのデザインパターンにおいて、あるオブジェクトの状態変化を複数の依存オブジェクトへ自動通知するパターンはどれか。

ア.Observerパターン正解
イ.Strategyパターン
ウ.Singletonパターン
エ.Factoryパターン

解説

Observerパターンはニュース配信のようなもの。新聞社(Subject)に購読登録(subscribe)すると、記事が出るたびに自動的に届きます(notify)。新聞社は購読者リストを管理し、全員に一斉配信します。

なぜ ア が正解か

Observerパターン(別名:Publish-Subscribe、pub/sub)はSubjectとObserverの関係を定義します。Subject(発行者)は状態が変化するとregisterされた全Observer(購読者)のupdate()メソッドを呼び出します。UIのイベント処理(クリック→リスナー通知)、MVCのModel変更→View更新などで広く使われます。アが正解です。

なぜ イ は間違いか

Strategyパターンはアルゴリズム(戦略)を実行時に交換可能にするパターンです。「どのように処理するか」を差し替える目的であり、状態変化の通知とは異なります。

なぜ ウ は間違いか

Singletonパターンはクラスのインスタンスが1つしか生成されないことを保証するパターンです。通知の仕組みとは無関係です。

なぜ エ は間違いか

Factoryパターン(Factory Method/Abstract Factory)はオブジェクトの生成方法をカプセル化するパターンです。「どのオブジェクトを作るか」の問題であり、状態変化の通知とは全く異なります。

出典: AI生成問題(学習用)