(5 つのパラメーター、5 つのパラメーター依存関係、1 つのパターンを再利用)
この Abstract factory パターンは、一般に知られている Abstract factory パターンを基にしています。 このパターンは、Interface パターンを再利用しており、 振る舞いを Interface パターンに委譲するという形で、依存性の委譲を例示しています。 すべての具象プロダクトが、 バインドされるすべての抽象プロダクト・インターフェースを実装しているという点で、 Abstract factory パターンは、 縮退した抽象ファクトリー・ファクトリーを実装したものといえます。 Abstract Factory パターンは、 パラメーターの依存関係の使用法を例示し、 追加の引数がパターンにバインドされるように、 パターンのセマンティクスを維持します。 Singleton パターンがコラボレーション以外の何かを利用して、 パターン・インスタンスを表すように、 このパターンはパッケージを利用します。 このパターンのインスタンスは、パッケージです。
(2 つのパラメーター、1 つのパラメーター依存関係、3 つのパターンを再利用)
委譲パターンには、2 つのパラメーターがあります。委譲パターンにおいて、委託側を示すものと、代行側を示すものです。 委託側は、委譲インターフェースに定義され、 委託側によって実装された操作を、代行タイプのインスタンスに委譲します。 このパターンは、委譲マッピング・フィルターを使用して、 Keyword List パターン再利用インスタンスに バインドされるキーワードの名前をカスタマイズする方法を例示します。 この名前のカスタマイズは、 委譲パターンの有効な実装を提供するためには必要ありませんが、 委譲マッピング・フィルターの使用法を例示するために、 このサンプルに追加されました。
(6 つのパラメーター、5 つのパラメーター依存関係、マイクロパターン)
Directed Association パターンは、自己完結した基本パターンのひとつであり、より粒度の高い他のパターンによって利用されるマイクロパターンです。 Directed Association パターンには、 有向関連のコンテキストを設定する 2 つの基本パラメーターがあります。 Directed Association パターンには、その他にも 5 つの周辺パラメーターがあります。 それらによって、関連タイプ、役割名、および多重度を構成し、 関連の形成を補助します。 このパターンは、サンプル委譲パターンにより再利用されます。 これは、あまり共通点のないパラメーター型を多く含んでいるパターンの一例です。 このパターンの定義には、リテラル文字列、整数、およびパターン列挙型が使用されます。 サンプルにある、リテラルおよび列挙型を処理するためのパターン・コードは、類似したパラメーター型を持つパターン作成方法を習得する際、非常に役立ちます。
(2 つのパラメーター、1 つのパラメーター依存関係、マイクロパターン)
Implementation パターンは、自己完結した基本パターンで、その実装において他のパターンを利用しません。 実装引数からインターフェース引数への UML 実装関係が存在することを保証する、 大変シンプルなパターンです。
(2 つのパラメーター、1 つのパラメーター依存関係、1 つのパターンを再利用)
Interface パターンは、他の複数のサンプル・パターンによって利用されている一方、その実装においても Implementation パターンを再利用しています。 Implementation パターンは、大変基本的なパターンで (マイクロパターンとも言います)、 実装引数がインターフェース引数を実装することを確実にするために、 Interface パターンにより使用されます。 Interface パターンには 2 つのパラメーターがあります。 一方はインターフェースを表し、もう一方は実装を表します。 Interface パターンには、 パターン定義の使用法およびパターン依存関係の委譲を使用する、 基本的な委譲マッピングのサンプルが含まれています。 これは、大変基本的ですが有効なパターンで、 パターンに関する文書の他の箇所でも述べられています。 また、このパターンでは、 パターンの依存関係更新メソッドを実装するための、 パターン委譲とカスタム・コードの両方を使用した組み合わせが示されます。 Implementation パターンは、実装関係を保証するために再利用されます。そして次に、実装がインターフェース引数のすべての定義済み操作を確実に実装するよう、 カスタム更新メソッド・コードが使用されます。
(2 つのパラメーター、1 つのパラメーター依存関係、マイクロパターン)
Keyword List パターンは、自己完結した基本パターンで、その実装において他のパターンを利用しません。 パラメーター型として、UML リテラル文字列や抽象 UML メタタイプを使用することもできます。 このパターンには、引数をバインドしないパターン・インスタンスが適用されないなどのパターン・セマンテイクスを正しく保証する機能が組み込まれています。 Keyword List パターンは、 それ自体で「パターン・エクスプローラー」ビューから インスタンス化することもできますが、 パターン委譲メカニズムを通じて、 他のパターンによって再利用される方が適しています。
(パラメーターなし)
この Singleton パターンは、一般に知られている Singleton パターンを基にしています。 パラメーターを持たないパターンの一例です。 暗黙パラメーターはありますが、 それはパターン・インスタンス自体であると見なすことができます。 このパターンは、そのパターン・インスタンスをクラスとして表現します。 コラボレーションという、典型的でより一般的な方法では表現しません。 Singleton パターンの有効な使用法は、 このパターンを「パターン・エクスプローラー」ビューから、 確実に Singleton にする必要のあるクラスにドラッグすることです。 このパターンをダイアグラムの表面 (パッケージの内部) にドラッグすると、 新しい Singleton インスタンスが作成されます。 これによって、このインスタンスを表す新規クラスも作成されます。
(3 つのパラメーター、2 つのパラメーター依存関係、2 つのパターンを再利用)
この戦略パターンは、一般に知られている戦略パターンを基にしています。 キーワード・リストおよびインターフェースのサンプル・パターンを再利用し、 パラメーター委譲マッピングのサンプルを含んでいます。 戦略パターンには 3 つのパラメーターがあります。 それぞれ、戦略インターフェース、具象戦略、戦略自体のコンテキストを表しています。 Keyword List パターンの再利用を実演するには、 そのパターンによって、戦略インターフェース・パラメーターの 引数に <<Strategy>> キーワードが存在するようにします。 具象戦略パラメーターのバインドされた引数によって、 戦略インターフェースが実装されるよう、 Interface パターンが再利用されます。
* Gamma、Helm、Johnson、Vlissides 著『Design Patterns: Elements of Reusable Object-Oriented Software』 (Addison-Wesley, 1995) copyright (c) 1995 by Addison-Wesley Publishing Company, Inc. All rights reserved.