ホーム > システムアーキテクト試験 > 2013年
システムアーキテクト試験 2013年 午前2 問05
オブジェクト指向におけるデザインパターンに関する記述として、適切なものはどれか。
ウ:オブジェクトの内部にデータを隠蔽し、オブジェクトの仕様と実装を分離したものである。
ア:幾つかのクラスに共通する性質を抽出して、一般化したクラスを定義したものである。
イ:同じ性質をもつオブジェクト群を、更にクラスとして抽象化したものである。
エ:システムの構造や機能について、典型的な設計上の問題とその解決策を示し、再利用できるようにしたものである(正解)
解説
オブジェクト指向におけるデザインパターンに関する記述【午前2 解説】
要点まとめ
- 結論:デザインパターンとは、設計上の典型的な問題とその解決策を体系化し再利用可能にしたものである。
- 根拠:設計パターンは具体的なコードではなく、問題解決のための抽象的な設計手法やテンプレートを提供する。
- 差がつくポイント:単なるクラスの一般化や抽象化、カプセル化とは異なり、設計の問題解決に焦点を当てている点を理解することが重要。
正解の理由
選択肢エは「システムの構造や機能について、典型的な設計上の問題とその解決策を示し、再利用できるようにしたもの」とあり、これはデザインパターンの定義に合致します。デザインパターンはオブジェクト指向設計における問題解決のための「設計の型」であり、再利用性と保守性を高めるために用いられます。
よくある誤解
デザインパターンは単なるクラスの抽象化やデータ隠蔽ではなく、設計上の問題に対する解決策のテンプレートである点を混同しやすいです。
解法ステップ
- 問題文の「デザインパターン」の定義を確認する。
- 選択肢の内容が「設計上の問題と解決策の体系化」であるかを判断する。
- クラスの一般化や抽象化、カプセル化の説明と混同しないように注意する。
- 最もデザインパターンの本質を表している選択肢を選ぶ。
選択肢別の誤答解説
- ア: クラスの一般化は継承や抽象クラスの話であり、デザインパターンの定義とは異なります。
- イ: オブジェクト群の抽象化はクラス設計の基本概念であり、パターンの説明ではありません。
- ウ: データの隠蔽や実装の分離はカプセル化の説明であり、デザインパターンの定義とは異なります。
- エ: 設計上の典型的な問題と解決策を示し、再利用可能にしたものであり、正解です。
補足コラム
デザインパターンは「GoF(Gang of Four)」によって体系化され、代表的なパターンには「シングルトン」「ファクトリーメソッド」「ストラテジー」などがあります。これらは設計の質を向上させ、コードの再利用や保守性を高めるために活用されます。
FAQ
Q: デザインパターンはコードのテンプレートですか?
A: いいえ。デザインパターンはコードの具体的な実装ではなく、設計上の問題に対する抽象的な解決策のテンプレートです。
A: いいえ。デザインパターンはコードの具体的な実装ではなく、設計上の問題に対する抽象的な解決策のテンプレートです。
Q: デザインパターンとクラスの継承は同じですか?
A: 違います。継承はクラス設計の一手法であり、デザインパターンは設計上の問題解決のための枠組みです。
A: 違います。継承はクラス設計の一手法であり、デザインパターンは設計上の問題解決のための枠組みです。
関連キーワード: オブジェクト指向, デザインパターン, 設計パターン, GoF, 再利用性, 保守性