エンベデッドシステムスペシャリスト暗記無料で始める

Observerパターンとは?おぶざーばぱたーん

Observerパターンとは、あるオブジェクトの状態が変わったとき、それに依存する複数のオブジェクトへ自動的に通知して更新させるデザインパターン。通知元は購読側のインタフェースだけを知っていればよく、購読者の増減や具体的な実装から切り離される。

最終更新:2026-10-06

試験情報

エンベデッドシステムスペシャリスト試験の過去問では1回出題されています。

エンベデッドシステムスペシャリスト試験の頻出用語/午前II

別名:観察者パターン、出版-購読

この語が出る過去問を解く →

背景

状態を持つ側が、それを使う側を名指しで呼びに行く作りにすると、表示を一つ増やすたびに状態側のコードへ手が入る。かといって使う側から周期的に問い合わせれば、変化の無い間もCPUと電力を空費する。変わった側は「変わった」とだけ伝え、誰へ伝えるかは実行時の登録で決める形にしたことで、追加も削除も片側の変更だけで済むようになった。

具体例

Javaの標準ライブラリのリスナやQtのシグナル・スロットがこの型の実装にあたる。組込みでは、センサ値の更新を表示部・ログ記録部・警報判定部がそれぞれ登録して受け取る作りにしておけば、警報機能を後から追加しても計測側に手を入れずに済む。

試験での引っ掛け

通知元(Subject)が購読者の一覧を自分で持って直接呼ぶ点が、仲介役のブローカを必ず挟むPublish-SubscribeやMQTTとの分かれ目になる。通知の順序や同期・非同期の別は保証されないため、順序に依存する処理をここへ載せない。アルゴリズムを差し替えるStrategyとは目的そのものが違う。

関連用語

出た過去問

解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。

この語が出る過去問を解く →

試験での特徴
  • 試験では1回出題
  • 分野:午前II
  • 通知元(Subject)が購読者の一覧を自分で持って直接呼ぶ点が、仲介役のブローカを必ず挟むPublish-SubscribeやMQTTとの分かれ目になる。