GoFのデザインパターン
更新日:
用語解説
デザインパターンは、ソフトウェアの設計で繰り返し現れる問題に対する、実績のある解決の型を、名前を付けて整理したものです。GoF(Gang of Four)の23のパターンが有名です。
■ 試験で押さえるポイント
オブジェクトの生成、構造、振る舞いに関するパターンに分類されます。
パターンの名前を使うと、設計の意図を共通の言葉で伝えられます。
完成したプログラムの部品ではなく、状況に合わせて使う設計のひな型です。
分類 | パターン | 役割 |
|---|---|---|
生成 | Singleton | クラスのインスタンスを1つだけにする |
生成 | Factory Method | どのクラスを生成するかをサブクラスに任せる |
構造 | Adapter | 合わないインタフェースを変換して使えるようにする |
構造 | Composite | 容器と中身を同じように扱い、木構造を作る |
構造 | Decorator | オブジェクトを包んで、機能を後から付け足す |
構造 | Facade | 複雑な仕組みに、簡単な窓口を1つ用意する |
構造 | Proxy | 代理のオブジェクトが、アクセスの制御などを行う |
振る舞い | Strategy | 処理の方法(アルゴリズム)を交換できるようにする |
振る舞い | Observer | 状態が変わったことを、登録した相手に通知する |
振る舞い | Template Method | 処理の骨組みを親クラスで決め、細部を子クラスで決める |
振る舞い | Iterator | 中身の構造を知らなくても、要素を順にたどれる |
振る舞い | State | 状態ごとに振る舞いを切り替える |
■ 過去問での着眼点
合わない状況で無理に使うと、設計が複雑になります。問題に合うかを確認して使います。
例: 支払の方法を切り替えられるように、共通のインタフェースで方法を交換できるようにするのがStrategyパターンです。