生成に関するパターン |
Factory Method |
オブジェクトの生成を行う時のインタフェースを規定して、
インスタンス化するクラスを決定するのはサブクラスに任せる。
|
Abstract Factory |
関連するオブジェクト群を、その具象クラスを明確にせずに生成するための
インタフェースを提供する。
|
Builder |
オブジェクトの生成手順が複雑な場合に、その生成過程をカプセル化する。
|
Prototype |
生成するオブジェクトの原型をコピーして新しいオブジェクトを生成する。
|
Singleton |
システム内で生成可能なインスタンス数をひとつだけに制限する。
|
構造に関するパターン |
Adapter |
インタフェースを変換することにより、インタフェースに互換性がない
クラス同士を接続する。
|
Bridge |
クライアントがアクセスするクラス(インタフェース)と実装クラスを分離して、
それぞれを独立に変更できるようにする。
|
Composite |
部分−全体階層を表現するために、クラスの木構造に組み立てる。
同一のクラスから派生したサブクラスを木構造のノードとし、
クライアントは木構造の任意の部分を同一のインタフェースで扱える。
|
Decorator |
サブクラス化ではなく委譲により、クラスに新しい機能を追加する。
|
Facade |
複数のクラス群からなるサブシステムにアクセスするためのインタフェースを提供する。
|
Flyweight |
一度生成したインスタンスはプーリングしておき、必要なときに取り出して使う。
|
Proxy |
オブジェクトへのアクセスをフックするための代理オブジェクトを提供する。
|
振る舞いに関するパターン |
Command |
要求をオブジェクトとしてカプセル化し、要求の発生と実際の処理を分離する。
|
Chain of Responsibility |
クライアントからの要求を複数のオブジェクトでたらいまわしにする。
|
Interpreter |
文字列からなる構文を構文解析(Interprete)し、
構文を表現したオブジェクト構造ともとの文字列を関連付ける。
|
Iterator |
オブジェクトの集合があるとき、その集合の内部構造はカプセル化したままで、
要素に対して順にアクセスする方法を提供する。
|
Mediator |
複数のオブジェクトを相互作用させる場合に、お互いのオブジェクト同士が直接参照する
ことをなくすため、相互作用そのものをオブジェクトとして定義する。
|
Memento |
オブジェクトの状態を保存しておき、元に戻せるようにしておく。
|
Observer |
あるオブジェクトに依存した複数のオブジェクトがある場合に、
被依存オブジェクトの状態変化を、依存オブジェクトに通知する。
|
State |
状態に応じてオブジェクトの振る舞いを変更したいときに、
振る舞いを別オブジェクトにカプセル化する。
|
Strategy |
アルゴリズムをカプセル化して、アルゴリズムを交換可能にする。
ひとつの入力データに対して、アルゴリズム毎に異なる結果を出力する。
|
Template Method |
アルゴリズムを複数のステップに分解し、それぞれのステップを抽象メソッドにする。
各ステップでのメソッドの実装はサブクラスで定義する。
|
Visitor |
複数のオブジェクトからなるオブジェクト構造があるときに、
それぞれのオブジェクト要素に処理を追加またはオブジェクト要素の処理を変更するため、
Visitorクラスを用意する。
|