メインコンテンツへスキップ
システムアーキテクト2010年度 秋期午前II3

2010年度 秋期 システムアーキテクト 午前II3

難度標準

デザインパターンの中のストラテジパターンを用いて、帳票出力のクラスを図のとおりに設計した。この帳票出力ストラテジクラスの説明として、適切なものはどれか。

選択肢

クライアントは、どの帳票出力ストラテジクラスがどのフォーマットに対応するかを意識せずに利用できる。
新規フォーマット用のアルゴリズムの追加が容易である。
帳票出力ストラテジクラスの中で、どのフォーマットで帳票を出力するかの振分けを行っている。
帳票出力のアルゴリズムは、コンテキストクラスの中に記述する。

解説

結論 → 詳細 → 補足 の 3 層構成

展開
結論Layer 1

ストラテジパターンは、アルゴリズムファミリーを定義し、それぞれをカプセル化して、それらを交換可能にするデザインパターンです。これにより、アルゴリズムをクライアントから独立して変更できるようになります。

詳細Layer 2

イは、ストラテジパターンの主要な利点である、アルゴリズムの交換可能性と拡張性の容易さを的確に表しています。新規フォーマット用のアルゴリズム(=ストラテジ)を追加する際は、新しいストラテジクラスを作成し、それをコンテキストクラスに渡すだけで済みます。既存のコードを変更することなく、機能拡張が可能です。

補足Layer 3

アは、ストラテジパターンの目的とは異なります。クライアントは、どのストラテジ(=帳票出力フォーマット)を利用するかを選択・設定する必要があります。ストラテジパターンは、コンテキストクラスがどのストラテジを選択するかを決定することはありますが、クライアントがそれを意識せずに済むわけではありません。

ウは、ストラテジパターンの振る舞いとは異なります。振分けのロジックは、コンテキストクラス(=帳票出力クラス)が、どのストラテジインスタンスを利用するかを決定する際に含まれることはありますが、帳票出力ストラテジクラス自身が振分けを行うわけではありません。各ストラテジクラスは、特定のフォーマット出力アルゴリズムのみを担当します。

エは、ストラテジパターンの設計原則に反します。帳票出力のアルゴリズムは、各ストラテジクラス(=各フォーマットに対応するクラス)の中に記述されるべきです。コンテキストクラスは、抽象的なストラテジインターフェースを通じて、具象的なストラテジクラスのインスタンスを利用します。

この解説は?
この解説は AI 生成です(詳細)

解説テキストは Google Gemini に IPA 公式の問題文・公式解答を入力して生成しました。 人間によるレビューを行ったものと、未レビューのものが混在します。

AI は事実誤認・選択肢の取り違え・最新法令の反映漏れ等を含む可能性があります。 重要な判断は必ず IPA 公式 PDF または最新の参考書でご確認ください。

解説の検証プロセス・誤り報告フローは 運営透明性レポートで公開しています。

※ AI 生成の解説は誤りを含む可能性があります。重要な判断は IPA 公式資料でご確認ください。

最終更新:

分野「ソフトウェア設計」の学習ポイント

この問題の理解を「分野全体の力」に広げるための足がかり

何が問われるか
本問の分野で問われる代表的な知識・用語の整理。
学習の進め方
正解/誤答の選択肢ごとに「なぜ正しい / なぜ違うのか」を1行ずつ言語化すると定着する。
この分野の問題をもっと解く
AI コパイロット

この問題を AI と深掘りする

用語解説・選択肢分析・類題生成をその場で対話。クイズモードでは解答→解説がゼロ遷移。

クイズモードで開く

共有

X でシェアLINE

ショート動画

関連する問題

ソフトウェア設計 の他の問題