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

令和5年度 秋期 午前Ⅱ 問17

設計

デザインパターンに関する問題

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

帳票出力のクラス図:

凡例: クラスの箱は上から クラス名/属性/操作

[コンテキスト](属性・操作なし)
    ◇──→ [帳票出力ストラテジ](集約。コンテキスト側がひし形)

[帳票出力ストラテジ]
  操作: +帳票出力( )

[PDF帳票出力ストラテジ]
  操作: +帳票出力( )
  ──▷ [帳票出力ストラテジ](汎化)

[HTML帳票出力ストラテジ]
  操作: +帳票出力( )
  ──▷ [帳票出力ストラテジ](汎化)
答えと解説を見る

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

解説

サブクラスを足すだけで新しい出力形式に対応できます。

ストラテジパターンは、アルゴリズムを一つずつクラスとして切り出し、共通の型を通して差し替えられるようにする設計です。この図では、帳票出力ストラテジが共通の操作である帳票出力を定め、PDF 帳票出力ストラテジと HTML 帳票出力ストラテジがそれぞれの形式で中身を実装しています。コンテキストは帳票出力ストラテジを保持して呼び出すだけなので、新しい形式に対応したいときは、帳票出力ストラテジを継承したサブクラスを一つ追加すれば済み、コンテキストや既存のサブクラスを書き換える必要はありません。ストラテジパターンは、アルゴリズムを部品として交換・追加しやすくする仕組み、と覚えると説明を選びやすくなります。

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

この問題の用語

出典:令和5年度 秋期 エンベデッドシステムスペシャリスト試験 午前Ⅱ 問17

同じ用語が出る問題

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