デザインパターン
Factory Methodパターン
- オブジェクトを作成するときのインターフェースだけを規定して、実際にどのクラスをインスタンス化するかはサブクラスが決定するようにする
Abstract Factoryパターン
- 互いに関連したり依存したりするオブジェクト群をその具象クラスを明確にせずに生成するためのインターフェースを提供する
Builderパターン
- 複合オブジェクトについて、その作成過程を表現形式に依存しないものにすることにより、同じ作成過程で異なる表現形式のオブジェクトを生成できるようにする
Prototypeパターン
- 原型となるインスタンスを使って生成すべきオブジェクトの種類を明確にし、この原型をコピーすることで新しいオブジェクトを生成する
Singletonパターン
- クラスが1つだけインスタンスを持つことを保証し、そのインスタンスにアクセスするためのグローバルな方法を提供する
Adapterパターン
- クラスのインターフェースを、クライアントが求める他のインターフェースに変換する。Adapterパターンは互換性がないインターフェースのために組み合わせることができないクラス同士を組み合わせることができるようにする
Bridgeパターン
- 抽象概念とその実装を分離して、それらを独立に変更できるようにする
Compositeパターン
- 階層構造を表現するためにオブジェクトを木構造に組み立てる。Compositeパターンを利用することでクライアントは個々のオブジェクトとそのオブジェクトを合成したものを一様に扱うことができる
Decoratorパターン
- オブジェクトに付加的な機能を動的に追加する。Decoratorパターンは継承よりも柔軟な拡張方法を提供する
Facadeパターン
- サブシステムの複数のインターフェースに1つの統一されたインタフェースを与える。Facadeパターンはサブシステムの利用を用意にするための高レベルのインターフェースを定義する
Flyweightパターン
- 多数の小さいオブジェクトを効率よくサポートするために共有を利用する
Proxyパターン
- あるオブジェクトへのアクセスを制御するために、そのオブジェクトの代理または入れ物を提供する
Chain Of Responsibilityパターン
- 1つ以上のオブジェクトに要求を処理する機会を与えることにより、要求を送信するオブジェクトと受信するオブジェクトの結合を避ける。要求を受信する複数のオブジェクトをチェーン状につなぎ、あるオブジェクトがその要求を処理するまでそのチェーンに沿って要求を渡していく
Commandパターン
- 要求をオブジェクトとしてカプセル化することによって、様々な要求または要求からなるキューやログによりクライアントをパラメータ化する。そして、取り消し可能な操作をサポートする
Interpreterパターン
- 言語に対して、文法表現と、それを利用して文を解釈するインタプリタを一緒に定義する
Iteratorパターン
- 集約オブジェクトの内部表現を公開せずに、その集約オブジェクトの要素を順にアクセスする方法を提供する
Mediatorパターン
- オブジェクト群がどのように相互作用するかをカプセル化するオブジェクトを定義する。 Mediatorパターンはオブジェクト同士がお互いを明示的に参照し合うことがないようにして、結合度を低めることを促進する。それにより、オブジェクトの相互作用を独立に変えることができるようにする
Mementoパターン
- カプセル化を破壊せずに、オブジェクトの内部状態を捉えて外面化しておき、オブジェクトを後でこの状態に戻すことができるようにする
Observerパターン
- あるオブジェクトの状態が変わった時に、それに依存するすべてのオブジェクトに自動的にそのことが知らされ更新されるように、オブジェクト間に一対多の依存関係を定義する
Stateパターン
- オブジェクトの内部状態が変化したときにオブジェクトの処理内容を変えられるようにする
Strategyパターン
- アルゴリズムの集合を定義し、それぞれのアルゴリズムをカプセル化してそれらを交換可能にする。Strategyパターンはアルゴリズムを、それを利用するクライアントから独立に変更できるようにする
Template Methodパターン
- ある処理においてアルゴリズムのスケルトンを定義し、その中のいくつかのステップはサブクラスでの定義に任せる。Template Methodパターンはアルゴリズムの構造を変化させることなしにアルゴリズム中のあるステップをサブクラスで再定義させる
Visitorパターン
- オブジェクトの構造上の要素で実行される処理を表現する。Visitorパターンを使用することにより処理を加えるクラスを変更することなしに新しい処理を定義できるようになる
作成日: 2005年01月04日11時33日42秒
![[トップページ]](../lib/img//top.gif)
![[一覧]](../lib/img//list.gif)
![[検索]](../lib/img//search.gif)
![[ヘルプ]](../lib/img//help.gif)
![[ログイン]](../lib/img//login.gif)