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

アルゴリズムを別クラスに委譲し追加・切替を容易にするのがストラテジ

頻出システムアーキテクト試験2022年度 春期 午前II5/ソフトウェア方式設計 / 設計パターン

クラス図。左上に「コンテキスト」クラス(属性・操作なし)があり、右にある「帳票出力ストラテジ」クラス(操作:+帳票出力())とコンポジション(コンテキスト側が黒塗りでない菱形、矢印は帳票出力ストラテジ側を指す)で結ばれている。「帳票出力ストラテジ」クラスの下には、「PDF帳票出力ストラテジ」クラスと「HTML帳票出力ストラテジ」クラス(いずれも操作:+帳票出力())が、それぞれ白抜き三角矢印(汎化・継承)で「帳票出力ストラテジ」クラスに接続されている。右上には凡例としてクラス図の表記(クラス名/属性/操作の3段構成)が示されている。
クラス図。左上に「コンテキスト」クラス(属性・操作なし)があり、右にある「帳票出力ストラテジ」クラス(操作:+帳票出力())とコンポジション(コンテキスト側が黒塗りでない菱形、矢印は帳票出力ストラテジ側を指す)で結ばれている。「帳票出力ストラテジ」クラスの下には、「PDF帳票出力ストラテジ」クラスと「HTML帳票出力ストラテジ」クラス(いずれも操作:+帳票出力())が、それぞれ白抜き三角矢印(汎化・継承)で「帳票出力ストラテジ」クラスに接続されている。右上には凡例としてクラス図の表記(クラス名/属性/操作の3段構成)が示されている。

選択肢

正解と解説

正解: 新規フォーマット用のアルゴリズムの追加が容易である。

ストラテジパターンは、切り替えたいアルゴリズムを共通のインタフェースをもつ別クラス(具象ストラテジ)として実装し、利用側のコンテキストはそのインタフェース経由で呼び出す構造をとる。新しい出力形式を増やしたいときは、共通インタフェースを実装したサブクラスを1つ追加するだけでよく、コンテキストや既存クラスに手を入れずに済む。

選択肢ごとの解説

出典:令和4年度 春期 システムアーキテクト試験 午前II 問5(IPA)

同じ分野の他の問題

最終更新:2026-08-25/解説・選択肢ごとの解説は資格暗記が独自に作成しています。問題文と選択肢の出典は上記のとおりです。