令和5年度 秋期 エンベデッドシステムスペシャリスト試験 午前II 問17
【問題17】
デザインパターンの中のストラテジパターンを用いて、帳票出力のクラスを図のとおりに設計した。適切な説明はどれか。

クライアントは、使用したいフォーマットに対応する、帳票出力カストラテジクラスのサブクラスを意識せずに利用できる。
新規フォーマット用のアルゴリズムの追加が容易である。
帳票出力カストラテジクラスの中で、どのフォーマットで帳票を出力するかの振り分けを行っている。
帳票出力のアルゴリズムは、コンテキストクラスの中に記述する。
【解説】
ア: クライアントは、使用したいフォーマットに対応する、帳票出力カストラテジクラスのサブクラスを意識せずに利用できる。
誤り。クライアントは通常、どのストラテジを使用するかを指定する必要があります。
イ: 新規フォーマット用のアルゴリズムの追加が容易である。
正しい。ストラテジパターンの特徴は、アルゴリズムをカプセル化しているため、既存コードを変更せずに新しいアルゴリズムの追加が容易である点です。
ウ: 帳票出力カストラテジクラスの中で、どのフォーマットで帳票を出力するかの振り分けを行っている。
誤り。振り分けは行わず、各ストラテジクラスが処理を個別に持ちます。
エ: 帳票出力のアルゴリズムは、コンテキストクラスの中に記述する。
誤り。アルゴリズムはストラテジクラスに記述され、コンテキストはそれを呼び出すだけです。
【答え】
イ: 新規フォーマット用のアルゴリズムの追加が容易である。
出典:令和5年度 秋期 エンベデッドシステムスペシャリスト試験 午前II 問17