GoFデザインパターン23種
① 生成(Creational)パターン:5種類
1. Singleton(シングルトン)たった1つだけのインスタンスを共有するパターン
2. Factory Method(ファクトリメソッド)
生成処理をサブクラス(関数)に任せるパターン
3. Abstract Factory(抽象ファクトリ)
関連するオブジェクト群を、統一されたインターフェイスで生成するパターン
4. Builder(ビルダー)
複雑なオブジェクトをステップことに作るパターン
5. Prototype(プロトタイプ)
すでにあるものをコピーして作るパターン
② 構造(Structural)パターン:7種類
6. Adapter(アダプター)互換性のないクラス同志をつなぐ「変換器(アダプター)」を作る器
7. Bridge(ブリッジ)
抽象(機能の定義)と実装(具体的な処理)を分離して、両者を独立して拡張できるようにするパターン
8. Composite(コンポジット)
「個(オブジェクト)」と「集合(グループ)」を同じように扱えるようにするパターン
9. Decorator(デコレーター)
既存のオブジェクトに新しい機能を"動的"に追加するためのパターン
10. Facade(ファサード)
複雑なシステムの内部処理をシンプルな「窓口(ファサード)」で隠すパターン
11. Flyweight(フライウェイト)
同じようなオブジェクトを大量に作るときのパターン
12. Proxy(プロキシ)
代理人(代わりになるオブジェクト)を用意して、本体(実オブジェクト)へのアクセスを制御・保護・遅延するパターン
③ 振る舞い(Behavioral)パターン:11種類
13. Chain of Responsibility(責任の連鎖)複数の処理オブジェクトを「チェーン(鎖)」のようにつなぎ、順番に処理を委譲していく パターン
14. Command(コマンド)
作をオブジェクトとして扱う
15. Interpreter(インタプリタ)
文法をコードとして表現し、独自のミニ言語を解釈・実行するパターン
16. Iterator(イテレータ)
コレクション(配列・リスト・ツリーなど)の要素に順番にアクセスする仕組みを統一的に提供するパターン
17. Mediator(メディエータ)
オブジェクト同士の直接的な依存関係を減らすためのパターン
18. Memento(メメント)
オブジェクトの状態を保存・復元できるようにするパターン
19. Observer(オブザーバ)
あるオブジェクト(=Subject/被観察者)の状態が変化したときに、それを監視している複数のObserver(監視者)へ自動的に通知するパターン
20. State(ステート)
オブジェクトの状態(State)によって、振る舞いを変えるパターン
21. Strategy(ストラテジー)
アルゴリズム(処理手順)を切り替え可能にするデザインパターン
22. Template Method(テンプレートメソッド)
「処理の流れ(テンプレート)」を親クラスに定義し、その中の一部の処理だけをサブクラスに任せるパターン
23. Visitor(ビジター)
データ構造と、その処理(操作)を分離するパターンで
0 件のコメント:
コメントを投稿