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

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