ホーム > システムアーキテクト試験 > 2012年
システムアーキテクト試験 2012年 午前2 問04
ソフトウェアパターンのうち、GoFのデザインパターンの説明はどれか。
ア:Javaのパターンとして引数オブジェクト、オプジェクトの可変性などで構成される。
イ:オブジェクト指向開発のためのパターンとして生成、構造、振舞いの3カテゴリから構成される。(正解)
ウ:構造、分散システム、対話型システム及び適合型システムの4カテゴリから構成される。
エ:抽象度の異なる要素を分割して階層化するためのLayers、コンポーネント分割のためのBrokerなどで構成される。
解説
ソフトウェアパターンのうち、GoFのデザインパターンの説明はどれか【午前2 解説】
要点まとめ
- 結論:GoFのデザインパターンは「生成」「構造」「振舞い」の3カテゴリに分類されるオブジェクト指向開発のパターンである。
- 根拠:GoF(Gang of Four)は1994年に発表された代表的なデザインパターン集で、23種類のパターンを3つのカテゴリに分けて体系化している。
- 差がつくポイント:GoFパターンはJava固有ではなく言語非依存であり、分散システムや階層化アーキテクチャの分類とは異なる点を押さえることが重要。
正解の理由
選択肢イは「オブジェクト指向開発のためのパターンとして生成、構造、振舞いの3カテゴリから構成される」と正確にGoFのデザインパターンの特徴を述べています。GoFはErich Gammaら4人の著者によるデザインパターン集で、23のパターンを3つのカテゴリに分類し、オブジェクト指向設計の問題解決に広く用いられています。
よくある誤解
GoFパターンはJava固有のものではなく、言語に依存しない設計パターンです。分散システムや階層化アーキテクチャの分類はGoFの枠組みとは異なります。
解法ステップ
- GoF(Gang of Four)とは誰か、何を示すかを確認する。
- GoFのデザインパターンが「生成」「構造」「振舞い」の3カテゴリに分類されていることを思い出す。
- 選択肢の説明がこの3カテゴリに合致しているかを判断する。
- Java固有や分散システムなどGoFの定義と異なる説明を除外する。
- 正確にGoFの特徴を述べている選択肢を選ぶ。
選択肢別の誤答解説
- ア: Java固有のパターンとする説明は誤り。GoFは言語非依存であり、Javaに限定されない。
- イ: 正解。GoFのデザインパターンは生成、構造、振舞いの3カテゴリに分類される。
- ウ: 分散システムや対話型システムのカテゴリはGoFの分類ではなく、別のパターン体系の説明である。
- エ: LayersやBrokerはアーキテクチャパターンの例であり、GoFのデザインパターンの分類とは異なる。
補足コラム
GoFのデザインパターンは「Design Patterns: Elements of Reusable Object-Oriented Software」という書籍で紹介され、ソフトウェア設計の基本的な問題を解決するための再利用可能な設計手法として広く認知されています。代表的なパターンにはシングルトン、ファクトリーメソッド、ストラテジー、オブザーバーなどがあります。
FAQ
Q: GoFのデザインパターンはどのプログラミング言語で使えますか?
A: GoFのパターンは言語非依存で、Java、C++、Pythonなど多くのオブジェクト指向言語で利用可能です。
A: GoFのパターンは言語非依存で、Java、C++、Pythonなど多くのオブジェクト指向言語で利用可能です。
Q: GoFの3つのカテゴリは何ですか?
A: 「生成(Creational)」「構造(Structural)」「振舞い(Behavioral)」の3つです。
A: 「生成(Creational)」「構造(Structural)」「振舞い(Behavioral)」の3つです。
関連キーワード: GoF, デザインパターン, オブジェクト指向, 生成パターン, 構造パターン, 振舞いパターン