平成28年度 春期 午前Ⅱ 問22
設計
デザインパターンの問題
デザインパターンの一つであるObserverパターンを利用して実現できることはどれか。
- アあるオブジェクトの状態が変化したときに,それに依存する全てのオブジェクトに自動的に通知する。
- イある機能をもつオブジェクトを新しいオブジェクトでラップし,動的に機能を拡張する。
- ウあるクラスのインスタンスが一つしか存在しないことを保証する。
- エ配列や集合のような実装の異なるコンテナに対し,同一のインタフェースでアクセスする。
答えと解説を見る
✓ これが正解アあるオブジェクトの状態が変化したときに,それに依存する全てのオブジェクトに自動的に通知する。
解説
Observerは、状態の変化を依存するオブジェクトへ自動で通知します。
Observerパターンは、あるオブジェクトの状態が変わったとき、それに依存している複数のオブジェクトへ自動的に知らせるためのデザインパターンです。見分ける軸は、パターンが解決する問題が何かです。状態をもつ側は通知先を一覧として登録しておき、変化が起きたら一覧の全てに通知します。通知を受ける側を後から増やしたり減らしたりしても、状態をもつ側のコードを書き換えずに済むのが利点です。表示の画面がデータの変化に合わせて更新される仕組みなどに使われます。Observerは観察する者を意味する、と言葉から結び付けると選べます。
ほかの選択肢はなぜ違うのか
- イある機能をもつオブジェクトを新しいオブジ…:オブジェクトを別のオブジェクトで包み、実行中に機能を付け加えていくのは、機能の拡張を目的とした別のデザインパターンの説明です。状態の変化を依存先へ知らせる仕組みではありません。
- ウあるクラスのインスタンスが一つしか存在し…:あるクラスのインスタンスが一つしか作られないことを保証するのは、生成を制限するための別のデザインパターンの説明です。状態の変化を多くのオブジェクトへ通知する仕組みとは目的が違います。
- エ配列や集合のような実装の異なるコンテナに…:配列や集合のように中身の作りが違う入れ物に、同じインタフェースで順にアクセスできるようにするのは、要素をたどるための別のデザインパターンの説明です。通知の仕組みではありません。
この問題の用語
- パターン繰り返し現れる規則性や、決まった形のことを指します。膨大なデータを処理して、そこに隠れた規則性を見つける使い方が広がりました。
出典:平成28年度 春期 エンベデッドシステムスペシャリスト試験 午前Ⅱ 問22
同じ用語が出る問題
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)