作成に関する GoF (Gang of Four) パターンは、インスタンスを作成する過程を抽象化します。作成に関するパターンは、システムとシステムで作成されるオブジェクトを分離するのに役立ちます。パターンの作成には 2 種類あります。クラス作成パターンとオブジェクト作成パターンです。クラス作成パターンは、インスタンスが作成されたクラスを変更するのに継承を使用します。オブジェクト作成パターンは、インスタンス作成を委譲します。
次の表で作成に関する GoF パターンについて説明します。
| パターン名 | 対応する設計上の問題 | ロール | 説明 |
|---|---|---|---|
| Abstract Factory | オブジェクトの具象クラスを明確にしないまま、一般的な方法でオブジェクトを作成するためのインタフェースを定義します。 | AbstractFactory | 抽象製品オブジェクトの作成に使用するパブリックインタフェースを定義します。 |
| ConcreteFactory | 具象製品オブジェクトを作成する操作を定義します。 | ||
| Abstract Product | ある種類の製品のパブリックインタフェースを定義します。 | ||
| ConcreteProduct | 関連する具象ファクトリによってインスタンス化される製品オブジェクトを宣言します。AbstractProduct インタフェースを定義します。 | ||
| Client | AbstractFactory オブジェクトと AbstractProduct オブジェクトを操作します。 | ||
| Builder | 複合オブジェクトの作成過程をその表現と分離して、同一の作成プロセスで異なる表現のオブジェクトを作成できるようにします。 | Builder | Product オブジェクトのさまざまな部品の作成に必要な操作を定義します。 |
| ConcreteBuilder | Builder インタフェースに宣言された操作を実装します。 | ||
| Director | Builder オブジェクトによって表示されるインタフェースを使用して特定の製品を作成します。 | ||
| Product | Builder オブジェクトが作成する具象タイプです。 | ||
| Factory Method | オブジェクトの作成に使用するインタフェースを提供します。実行時に作成する具象オブジェクトは、基になる Factory インタフェースを実装するサブクラスが決定できます。 | Product | パブリックインタフェースを定義し、このインタフェースからクライアントがオブジェクトを作成できるようにします。 |
| Concrete Product | Product インタフェースに宣言された操作を実装します。 | ||
| Creator | Product インタフェースを実装するオブジェクトの作成に使用する操作を定義します。 | ||
| ConcreteCreator | Handler インタフェースに宣言された操作を実装します。 | ||
| Prototype | 特定のオブジェクトのクローン作成に関する詳細情報を処理し、正確な複製を作成するためのインタフェースを提供します。 | Prototype | 現在のオブジェクトのクローン作成に使用可能な一貫性のあるメソッドを提供します。 |
| ConcretePrototype | Prototype インタフェースに宣言された操作を実装します。 | ||
| Client | Prototype オブジェクトを操作します。 | ||
| Singleton | 特定のクラスのインスタンスが 1 つだけであることを保証し、同時にすべての関連クライアントがそのインスタンスに大域からアクセスする方法を提供します。 | Singleton | 一連の操作を定義し、この種類の 1 つのインスタンスにクライアントがアクセスできるようにします。 |