平成30年度 春期 システム監査技術者試験 午前Ⅱ 問22
テクノロジ/開発技術デザインパターンの一つであるObserverパターンを利用して実現できることはどれか。
出典:平成30年度 春期 システム監査技術者試験 午前Ⅱ 問22
- アあるオブジェクトの状態が変化したときに,それに依存する全てのオブジェクトに自動的に通知する。
- イある機能をもつオブジェクトを新しいオブジェクトでラップし,動的に機能を拡張する。
- ウあるクラスのインスタンスが一つしか存在しないことを保証する。
- エ配列や集合のような実装の異なるコンテナに対し,同一のインタフェースでアクセスする。
正解:ア
解説
Observerパターンとは,あるオブジェクト(Subject)の状態が変化したときに,それに依存する(観察している)全てのオブジェクト(Observer)に対して自動的に通知を行う仕組みを実現するデザインパターンである。既存の機能をもつオブジェクトを新しいオブジェクトでラップして動的に機能を拡張するのはDecoratorパターン,クラスのインスタンスが一つしか存在しないことを保証するのはSingletonパターン,実装の異なるコンテナに同一のインタフェースでアクセスするのはIteratorパターンの説明であり,いずれもObserverパターンではない。
選択肢ごとの解説
- ア正しい。あるオブジェクトの状態が変化したときに,それに依存する全てのオブジェクトに自動的に通知することは,Observerパターンを利用して実現できることです。
- イ誤り。ある機能をもつオブジェクトを新しいオブジェクトでラップし,動的に機能を拡張することは,Decoratorパターンの説明であり,Observerパターンではありません。
- ウ誤り。あるクラスのインスタンスが一つしか存在しないことを保証することは,Singletonパターンの説明であり,Observerパターンではありません。
- エ誤り。配列や集合のような実装の異なるコンテナに対し,同一のインタフェースでアクセスすることは,Iteratorパターンの説明であり,Observerパターンではありません。