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