令和7年度 春期 午前Ⅱ 問5
設計
デザインパターンに関する問題
デザインパターンの一つである Observer パターンを利用して実現できることはどれか。
- アあるオブジェクトの状態が変化したときに,それに依存する全てのオブジェクトに自動的に通知する。
- イある機能をもつオブジェクトを新しいオブジェクトでラップし,機能を動的に拡張する。
- ウあるクラスのインスタンスが一つしか存在しないことを保証する。
- エ配列や集合のような実装の異なるコンテナに対し,同一のインタフェースでアクセスする。
答えと解説を見る
✓ これが正解アあるオブジェクトの状態が変化したときに,それに依存する全てのオブジェクトに自動的に通知する。
解説
状態の変化を、依存するオブジェクトへ自動で通知するのが Observer です。
Observer パターンは、あるオブジェクトの状態が変わったときに、それを見守っている複数のオブジェクトへ自動的に知らせるためのデザインパターンです。状態をもつ側は通知先を一覧として登録しておき、変化が起きたら一覧の全員に通知します。通知を受けた側は、それぞれ自分の表示や処理を更新します。通知する側は相手の具体的な中身を知らなくてよいので、両者の結び付きを弱く保てます。表計算で一つのデータを複数のグラフが表示していて、値を変えるとすべてのグラフが書き換わる、といった場面が典型です。見分ける軸は、状態の変化と通知の関係を扱っているかです。観察者に知らせる、と名前の意味のまま覚えると選べます。
ほかの選択肢はなぜ違うのか
- イある機能をもつオブジェクトを新しいオブジ…:既存のオブジェクトを新しいオブジェクトで包み、元の機能に後から機能を付け足していくのは、別のデザインパターンの説明です。機能の動的な拡張が目的であり、状態の変化を依存先に通知する仕組みではありません。
- ウあるクラスのインスタンスが一つしか存在し…:あるクラスのインスタンスが一つしか作られないことを保証するのは、生成に関する別のデザインパターンの説明です。インスタンスの数を制御するもので、状態の変化を複数のオブジェクトへ知らせる働きはありません。
- エ配列や集合のような実装の異なるコンテナに…:配列や集合のように実装が違う入れ物に、同じインタフェースで順にアクセスできるようにするのは、別のデザインパターンの説明です。要素のたどり方をそろえる仕組みで、変化の通知とは目的が異なります。
この問題の用語
- パターン繰り返し現れる規則性や、決まった形のことを指します。膨大なデータを処理して、そこに隠れた規則性を見つける使い方が広がりました。
出典:令和7年度 春期 システムアーキテクト試験 午前Ⅱ 問5
同じ用語が出る問題
- 令和6年度 春期 午前Ⅱ 問4:デザインパターンに関する記述(パターン)
- 令和6年度 春期 午前Ⅱ 問1:INVESTに関する問題(パターン)
- 令和5年度 春期 午前Ⅱ 問6:デザインパターンの説明(パターン)
- 令和5年度 春期 午前Ⅱ 問4:アーキテクチャパターンの問題(パターン)
- 令和5年度 春期 午前Ⅱ 問3:SysMLの特徴(パターン)
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)