Observerパターンとは?おぶざーばぱたーん
Observerパターンとは、あるオブジェクトの状態が変わったとき、それに依存する複数のオブジェクトへ自動的に通知して更新させるデザインパターン。通知元は購読側のインタフェースだけを知っていればよく、購読者の増減や具体的な実装から切り離される。
最終更新:2026-10-06
この語が出る過去問を解く →背景
状態を持つ側が、それを使う側を名指しで呼びに行く作りにすると、表示を一つ増やすたびに状態側のコードへ手が入る。かといって使う側から周期的に問い合わせれば、変化の無い間もCPUと電力を空費する。変わった側は「変わった」とだけ伝え、誰へ伝えるかは実行時の登録で決める形にしたことで、追加も削除も片側の変更だけで済むようになった。
具体例
Javaの標準ライブラリのリスナやQtのシグナル・スロットがこの型の実装にあたる。組込みでは、センサ値の更新を表示部・ログ記録部・警報判定部がそれぞれ登録して受け取る作りにしておけば、警報機能を後から追加しても計測側に手を入れずに済む。
試験での引っ掛け
通知元(Subject)が購読者の一覧を自分で持って直接呼ぶ点が、仲介役のブローカを必ず挟むPublish-SubscribeやMQTTとの分かれ目になる。通知の順序や同期・非同期の別は保証されないため、順序に依存する処理をここへ載せない。アルゴリズムを差し替えるStrategyとは目的そのものが違う。
関連用語
出た過去問
出典:平成28年度 春期 エンベデッドシステムスペシャリスト試験 午前Ⅱ 問22(IPA)
デザインパターンの一つであるObserverパターンを利用して実現できることはどれか。
正解:あるオブジェクトの状態が変化したときに、それに依存する全てのオブジェクトに自動的に通知する。
要点:Observerは状態変化を依存オブジェクトへ自動通知する
Observerパターンは、観測される側(Subject)と観測する側(Observer)を分離し、状態が変わったときに登録済みの観測者へ一斉に通知する構造である。通知される側の具体的な型を観測される側が知らずに済むので、依存の向きが一方向に整理され、通知先を後から増減できる。イベント通知や画面更新の仕組みに広く使われる。
出典・参考
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。