平成30年度 秋期 システム監査技術者試験 午前II 問22
【問題22】
デザインパターンの一つである Observer パターンを利用して実現できることはどれか。
あるオブジェクトの状態が変化したときに、それに依存する全てのオブジェクトに自動的に通知する。
ある機能をもつオブジェクトを新しいオブジェクトでラップし、動的に機能を拡張する。
あるクラスのインスタンスが一つしか存在しないことを保証する。
配列や集合のような実装の異なるコンテナに対し、同一のインタフェースでアクセスする。
【解説】
ア: あるオブジェクトの状態が変化したときに、それに依存する全てのオブジェクトに自動的に通知する。
正しい。Observer パターンは、Subject(通知元)の状態変化を複数の Observer(通知先)に通知する設計パターンで、イベント駆動型の設計に広く利用されます。
イ: ある機能をもつオブジェクトを新しいオブジェクトでラップし、動的に機能を拡張する。
誤り。これは Decorator パターンの説明です。
ウ: あるクラスのインスタンスが一つしか存在しないことを保証する。
誤り。これは Singleton パターンの説明です。
エ: 配列や集合のような実装の異なるコンテナに対し、同一のインタフェースでアクセスする。
誤り。これは Iterator パターンの説明です。
【答え】
ア: あるオブジェクトの状態が変化したときに、それに依存する全てのオブジェクトに自動的に通知する。
出典:平成30年度 春期 システム監査技術者試験 午前II 問22