過去問解きまくり研究所 ホーム

平成25年度 秋期 午前Ⅱ 問4

設計

ストラテジクラスの説明

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

帳票出力のクラス図:

┌────────────┐            ┌──────────────────┐
│ コンテキスト │◇──────────→│ 帳票出力ストラテジ │
├────────────┤            ├──────────────────┤
├────────────┤            ├──────────────────┤
└────────────┘            │ +帳票出力()      │
                          └──────────────────┘
                             △            △
                             │            │
          ┌──────────────────────┐  ┌───────────────────────┐
          │ PDF帳票出力ストラテジ │  │ HTML帳票出力ストラテジ │
          ├──────────────────────┤  ├───────────────────────┤
          ├──────────────────────┤  ├───────────────────────┤
          │ +帳票出力()          │  │ +帳票出力()           │
          └──────────────────────┘  └───────────────────────┘
答えと解説を見る

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

解説

新しいフォーマットは、ストラテジのサブクラスを足すだけで加えられます。

ストラテジパターンは、入れ替えたいアルゴリズムを、共通のインタフェースをもつクラスに切り出す設計です。図では、帳票出力ストラテジクラスが帳票出力()という操作を定め、PDF用とHTML用のクラスが汎化の関係でそれを受け継いで、それぞれのやり方で実装しています。コンテキストは帳票出力ストラテジという共通の型だけを相手にするので、新しいフォーマットを加えるときは、同じ操作を実装したクラスを一つ追加すれば済み、既存のクラスを書き換える必要がありません。アルゴリズムをクラスとして差し替えられる点がこのパターンの持ち味、と押さえておくとよいでしょう。

ほかの選択肢はなぜ違うのか

この問題の用語

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

同じ用語が出る問題

この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)