エンベデッドシステムスペシャリスト試験 令和5年度 秋期 午前II 問17
デザインパターンの中のストラテジパターンを用いて、帳票出力のクラスを図のとおりに設計した。適切な説明はどれか。

選択肢を押すと答え合わせができます。
正解と解説を見る
【正解】イ
ストラテジパターンは、処理のアルゴリズムを交換可能なクラスとして分離するデザインパターンです。図では、帳票出力ストラテジが帳票出力という共通の操作を定め、PDF帳票出力ストラテジとHTML帳票出力ストラテジが、それぞれ具体的な出力アルゴリズムを実装しています。コンテキストは、選択されたストラテジを保持し、共通の操作を通じて処理を依頼します。新しい形式を追加するときは、帳票出力ストラテジの新たなサブクラスを作ればよく、既存のPDF用やHTML用のアルゴリズムを変更する必要がありません。したがって、新規フォーマット用アルゴリズムの追加が容易であるイが正解です。
アの説明は誤りです。どの具体的なストラテジを使用するかは、クライアントや設定処理などが選択してコンテキストに与える必要があります。図だけでは、クライアントがサブクラスを全く意識せず利用できるとはいえません。
ウの説明は誤りです。帳票出力ストラテジ内で条件分岐による振り分けを行うのではなく、選択された具体的なストラテジの操作が多態性によって呼び出されます。
エの説明は誤りです。具体的な出力アルゴリズムはPDF用、HTML用などのストラテジクラスに記述します。コンテキストはストラテジを保持して処理を委譲する側です。
【ポイント】 ストラテジパターンでは、変化しやすいアルゴリズムを利用側から分離します。 継承による共通インタフェースと、コンテキストからストラテジへの委譲を図から読み取ることが重要です。
出典:令和5年度 秋期 エンベデッドシステムスペシャリスト試験 午前II 問17
※ 解説は SkillStack 編集部が作成したものです。Web 表示のため、図表の配置や表記を一部改めています。
この回の25問を、アプリで通しで解く
- 本番と同じ問題数・制限時間で通し演習(模試モード)
- 間違えた問題は自動で「復習すべき問題」に回る
- 解説で分からない点はAIに質問できる