1. シンプルなファクトリ パターン
特徴:
1. 特定のクラスです、非インターフェイス抽象クラス。重要な create() メソッドがあります。このメソッドは、if または switch を使用してプロダクトを作成し、それを返します。
2. create() メソッドは通常静的であるため、静的ファクトリーとも呼ばれます。
欠点:
1. スケーラビリティが低い (ある種の麺を追加したいと考えています。新しい麺製品クラスを追加するだけでなく、ファクトリ クラス メソッド)。
2. 異なる製品で異なる追加パラメータが必要な場合はサポートされません。
2. ファクトリ メソッド パターン
パターンの説明:
オブジェクトを作成するためのインターフェイス (ファクトリ インターフェイス) を提供します。その実装クラス (ファクトリー実装クラス) はどのクラス (製品クラス) をインスタンス化するかを決定し、実装クラスは対応するクラスのインスタンスを作成します。
モデルフォーム要素:
製品クラスのインターフェイスを提供します。すべての製品クラスはこのインターフェイスを実装する必要があります (抽象クラス、つまり抽象製品である場合もあります)。
ファクトリ クラス インターフェイスを提供します。すべてのファクトリ クラスはこのインターフェイス (つまり、抽象ファクトリ) を実装する必要があります。
製品クラスのインスタンスは、ファクトリ実装クラスによって作成されます。ファクトリ実装クラスには、製品クラスをインスタンス化するメソッドが必要です。
3. 抽象ファクトリ パターン
パターンの説明:
関連するグループを作成するにはまたは、相互依存オブジェクトは、具体的なクラスを指定せずにインターフェイスを提供します。
4. 違い
抽象ファクトリ パターンは、ファクトリ メソッド パターンのアップグレードされたバージョンであり、関連するオブジェクトまたは相互依存するオブジェクトのセットを作成するために使用されます。
これとファクトリ メソッド パターンの違いは、ファクトリ メソッド パターンが製品階層構造をターゲットとするのに対し、抽象ファクトリ パターンは複数の製品階層構造をターゲットとすることです。
プログラミングでは、通常、プロダクト構造はインターフェイスまたは抽象クラスによって表されます。つまり、ファクトリ メソッド パターンによって提供されるすべてのプロダクトは、同じインターフェイスまたは抽象クラス、および抽象ファクトリ パターンから派生します。提供される製品は、さまざまなインターフェイスまたは抽象クラスから派生します。
抽象ファクトリー パターンには、製品ファミリーの概念があります。いわゆる製品ファミリーとは、異なる製品階層構造に位置する、機能的に関連する製品のファミリーを指します。抽象ファクトリーパターンで提供される一連のプロダクトはプロダクトファミリーを形成し、ファクトリメソッドで提供される一連のプロダクトは階層構造と呼ばれます。
推奨チュートリアル: Java チュートリアル
以上がJavaの抽象ファクトリパターンとファクトリメソッドパターンの違いの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。