Creational
リンク | 概要 |
---|---|
Singletonパターン | 複数のオブジェクトのインスタンスを作成せず、1つのオブジェクトだけ公開する。 |
Borgパターン | 古典的なSingletonパターンを改良したもの。 |
Factoryパターン | オブジェクトの生成プロセスに抽象化されたレイヤーを導入する役割を果たす。 |
Builderパターン | いくつかの小さなオブジェクトを組み合わせて複雑なオブジェクトを作る場合などに有用。 |
Poolパターン | 独立した状態の再利用可能なオブジェクトを作成して維持する。 |
Prototypeパターン | オブジェクトのインスタンスを新たに作成するのではなく、クラス(プロトタイプ)のインスタンスを1つだけ作成し、必要に応じてディープコピーを行う。 |
Structural
リンク | 概要 |
---|---|
Decoratorパターン | オブジェクトに動作や属性を追加するために、継承に代わる、より柔軟な方法を可能にする。 |
Facadeパターン | より複雑なオブジェクトを背後に隠す高次のインターフェイスを作る。 |
Proxyパターン | オブジェクトやサービスとそのユーザーの間に、プロキシや中間的なインターフェースを作成する。 |
Flyweightパターン | メモリ集約状態を分離して、共通の共有オブジェクトに格納することができる。 |
Adapterパターン | 非均質なオブジェクトのインターフェイスを均質化する際に有効。 |
Compositeパターン | 階層的な関係を持つオブジェクトをツリー状に整理する。 |
Behavioural
リンク | 概要 |
---|---|
Chain of Responsibilityパターン | プログラマがオブジェクトの再帰的なチェーンを動的に作成することができる。 |
Mediatorパターン | オブジェクト間の多対多の関係を構築・管理する必要がある場合、これらの関係を維持する仲介オブジェクトを作成すること解決策を提供する。 |
Observerパターン | オブジェクト(observable)とその依存関係(observers)の間の一対多の依存関係をモデル化するために使用できる。 |
Commandパターン | 一連のコマンドをオブジェクト(Invoker)にカプセル化したもの。 |
Mementoパターン | オブジェクトがその状態の履歴を外部に保持することを可能にすること(したがって、復帰を実行できる)。 |
Registryパターン | あるクラスのすべてのサブクラスの記録(レジストリ)を管理することができる。 |
Strategyパターン | アルゴリズムのロジックとそのインターフェースを分離することが目的。 |