1.概要
オブジェクト指向開発のためのパターン
生成,構造,振る舞いの三つのカテゴリに分類される
Gang of Fourと呼ばれる4名によって設計されたデザインパターン
全部で23種類
2.3つのカテゴリー
生成カテゴリー
オブジェクトの生成に関する5パターン
| Singleton | 特定のクラスのインスタンスが一つだけ存在することを保証し、グローバルなアクセスを提供します |
| Factory Method | サブクラスがインスタンス生成のプロセスをオーバーライドすることを可能にし、柔軟なオブジェクト生成を実現します |
| Abstract Factory | 関連するオブジェクトのファミリーを生成するためのインターフェースを提供し、具体的なクラスに依存しない設計を可能にします |
| Builder | 複雑なオブジェクトの生成を段階的に行うためのパターンです |
| Prototype | 既存のオブジェクトをコピーして新しいオブジェクトを生成します |
構造カテゴリーの7パターン
オブジェクト間の関係を定義し、効率的な構造を提供する7パターン
| Adapter | 異なるインターフェースを持つオブジェクト間の互換性を提供し、既存のクラスを変更せずに再利用します |
| Facade | 複雑なシステムへの簡単なインターフェースを提供し、使用の容易さを向上させます |
| Bridge | 抽象化と実装を分離することで、独立して変化させることが可能になります |
| Composite | オブジェクトをツリー構造で表現し、部分-全体の階層を管理します |
| Decorator | 既存のオブジェクトに新しい機能を追加するためのパターンで、オブジェクトの拡張性を高めます |
| Flyweight | 多数のオブジェクトを効率的に管理するためのパターンです |
| Proxy | 別のオブジェクトへのアクセスを制御します |
振る舞いカテゴリの11パターン
オブジェクト間のコミュニケーションと責任の分配に関する11パターン
| Visitor | オブジェクトの構造を変更せずに新しい操作を追加するためのパターンです |
| Iterator | コレクション内の要素を順番にアクセスするためのインターフェースを提供し、コレクションの内容を簡単かつ一貫した方法で走査できるようにする |
| State | オブジェクトの内部状態に基づいて振る舞いを変えるパターンです |
| Strategy | アルゴリズムをカプセル化し、交換可能にするパターンで、柔軟な設計を実現します |
| Template Method | 操作のスケルトンを定義し、具体的なステップをサブクラスに委譲します |
| Chain of Responsibility | リクエストを処理するための一連のオブジェクトを持ち、リクエストが処理されるまでチェーンをたどります |
| Command | 操作をオブジェクトとしてカプセル化し、リクエストのパラメータ化や操作のキューイングを可能にします |
| Interpretor | 言語の文法を解析し、構文ツリーに基づいて文や式を評価するためのパターンです |
| Mediator | オブジェクト間の通信を管理し、複雑な依存関係を解消します |
| Mement | オブジェクトの状態を保存し、後でその状態を復元するためのパターンです |
| Observe | あるオブジェクトの状態変化を他のオブジェクトに通知するパターンで、イベント駆動型プログラムに適しています |