Creational Patterns(生成に関するパターン)
Abstract Factory
整合性を必要とする一連のオブジェクト群を、間違いなく生成したいとき、関連するオブジェクトをConcreteクラスを意識せずに、まとめて生成するインターフェースを提供する
【デザインパターン】Abstract Factory - 緑茶思考ブログ
Builder
あるオブジェクトの建築過程(construction process)と表現方法(representation)を分離することで、柔軟に変更できるソフトを目指す
【デザインパターン】Builder - 緑茶思考ブログ
Factory Method
インスタンスの生成をサブクラスに行わせることで、より柔軟に生成するインスタンスを選択する。
【デザインパターン】Factory Method - 緑茶思考ブログ
Prototype
一度作成したインスタンスをデータベースに記憶しておき,適宜呼び出してインスタンスのコピー元として使う
【デザインパターン】Prototype - 緑茶思考ブログ
Singleton
あるクラスのインスタンスが一つしかないことを保証する
【デザインパターン】Singleton - 緑茶思考ブログ
Structural Patterns(構造に関するパターン)
Adapter
あるクラスのインターフェースを、別のインターフェースへ変換する
【デザインパターン】Adapter - 緑茶思考ブログ
Bridge
あるクラスにおける機能追加と機能実装の2つの継承を分離し、それらを独立して管理する
【デザインパターン】Bridge - 緑茶思考ブログ
Composite
【デザインパターン】Composite - 緑茶思考ブログ
「容器」と「中身」を同一視することができ、再帰的な構造の取扱いを容易にする
Decorator
既存のオブジェクトに新しい機能や振る舞いを動的に追加する
【デザインパターン】Decorator - 緑茶思考ブログ
Facade
サブシステムのインターフェースを一つのインターフェースにまとめる
【デザインパターン】Facade - 緑茶思考ブログ
Flyweight
生成済みのオブジェクトをできるだけ再利用し、無駄なオブジェクト生成を防ぐ
【デザインパターン】Flyweight - 緑茶思考ブログ
Proxy
別のクラスのオブジェクトがアクセスできるように代理のクラスを提供する
【デザインパターン】Proxy - 緑茶思考ブログ
Behavioral Patterns(振る舞いに関するパターン)
Chain of Responsibility
受け取り手を繋いで、その連結順に要求を受け渡していく
【デザインパターン】Chain of Responsibility - 緑茶思考ブログ
Command
要求自体をオブジェクトにしてしまい、そのオブジェクトを引数に渡す
【デザインパターン】Command - 緑茶思考ブログ
Interpreter
文法規則をクラスで表現したものを用い構文解析し、その結果に基づき処理を実行していく機能を提供する
Iterator
集約オブジェクトを内包するオブジェクトが内部表現を公開することなく、その要素に順にアクセスする方法を提供する。
Mediator
複雑に絡みあった複数のオブジェクト間の関係を、必ず仲介者を介して処理を行うようにすることで、単純かつ明快なインターフェースを提供する。
【デザインパターン】Mediator - 緑茶思考ブログ
Memento
あるオブジェクトの任意の時点の状態を保存しておき、後でその状態にオブジェクトを戻す
【デザインパターン】Memento - 緑茶思考ブログ
Observer
一つのオブジェクトの状態が変わったら、依存関係にあるオブジェクトへ通知される
【デザインパターン】Observer - 緑茶思考ブログ
【C言語によるデザインパターン】Observer - 緑茶思考ブログ
State
状態が変わったときに、オブジェクトの振る舞いが変わるようにする。
それぞれの状態をクラスで表現する。
【デザインパターン】State - 緑茶思考ブログ
Strategy
一連のアルゴリズム(戦略)をカプセル化(部品化)し、動的なアルゴリズムの切替えを可能とする.
【デザインパターン】Strategy - 緑茶思考ブログ
【C言語によるデザインパターン】Strategy - 緑茶思考ブログ
Template Method
処理手順をスーパークラスで書いておき、差異となる処理部分を子クラスに実装させる。
【デザインパターン】Template Method - 緑茶思考ブログ
【C言語によるデザインパターン】Template Method - 緑茶思考ブログ
Visitor
既存オブジェクトに対する新たな操作を、構造を変化させずに追加できる
【デザインパターン】Visitor - 緑茶思考ブログ