IPA過去問ドリル

平成22年度 秋期 システムアーキテクト試験 午前Ⅱ 問3

テクノロジ/開発技術

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

平成22年度 秋期 システムアーキテクト試験 午前Ⅱ 問3の図

出典:平成22年度 秋期 システムアーキテクト試験 午前Ⅱ 問3

正解:イ

解説

ストラテジパターンでは,アルゴリズム(帳票出力の実装)を,共通のインタフェースをもつ複数の具象クラス(PDF帳票出力ストラテジ,HTML帳票出力ストラテジ)としてカプセル化し,コンテキストクラスはそれらを抽象クラス経由で利用する。これにより,新しい出力フォーマット用のアルゴリズムを追加する場合も,既存のクラスに手を加えずに新しい具象ストラテジクラスを追加するだけでよく,拡張が容易になる。

選択肢ごとの解説

  • 誤り。クライアントはコンテキストを通じて操作を呼び出すが,通常は利用したいフォーマットに対応するストラテジをコンテキストに設定する必要がある。
  • 正しい。新しいフォーマットに対応するには,ストラテジの抽象クラスを継承した新しい具象クラスを追加するだけでよく,既存のクラスへの影響なく拡張できる。
  • 誤り。フォーマットの振分けは個々の具象ストラテジクラスの中ではなく,コンテキストがどのストラテジを使うかを選択することによって行われる。
  • 誤り。帳票出力のアルゴリズムは各具象ストラテジクラス(PDF帳票出力ストラテジ,HTML帳票出力ストラテジ)の中に記述され,コンテキストクラスには記述しない。
システムアーキテクトの過去問を演習モードで解く