単純なファクトリと抽象的なファクトリの違いは何ですか?
(関連する推奨事項: Java 面接の質問 )
単純なファクトリー パターン:
このパターン自体は非常に複雑です。 simple そして、ビジネスが比較的単純な場合に使用されます。一般に、小規模なプロジェクトや、特定の製品がほとんど拡張されない状況 (ファクトリ クラスを頻繁に変更する必要がないように) に使用されます。
これは 3 つのロールで構成されます:
ファクトリ ロール: これはこのモデルの中核であり、特定のビジネス ロジックと判断ロジックが含まれています。異なるロジックに応じて、特定の工場製品が生成されます。例の Driver クラスなど。
製品の抽象的な役割: これは通常、特定の製品または実装されたインターフェイスによって継承される親クラスです。インターフェースまたは抽象クラスによって実装されます。例の Car インターフェイスなど。
特定の製品ロール: ファクトリ クラスによって作成されたオブジェクトは、このロールのインスタンスです。これは、例の Benz クラスや BMW クラスなど、Java の具象クラスによって実装されます。
Java 入門プログラム )
まず、製品ファミリーとは何かを理解しましょう: 製品ファミリーはさまざまな製品階層構造に配置され、関連する機能を持っています。接続された製品ファミリー。
写真の BmwCar と BenzCar は 2 つの製品ツリー (製品階層) であり、写真の BenzSportsCar と BmwSportsCar は 1 つの製品ファミリーです。これらはすべてスポーツカーファミリーに分類できるため、機能は関連しています。同様に、BmwBusinessCar と BenzBusinessCar も製品ファミリーです。
ファクトリ メソッド パターンとの違いは、オブジェクト作成の複雑さにあると言えます。さらに、抽象ファクトリー パターンは、3 つの中で最も抽象的かつ一般的です。抽象ファクトリ パターンの目的は、クライアントが複数の製品ファミリーの製品オブジェクトを作成するためのインターフェイスを提供することです。
さらに、抽象ファクトリ パターンを使用するには、次の条件を満たす必要があります:1. システム内に複数の製品ファミリがあり、システムは消費することしかできません。一度に 1 つの製品ファミリーを使用してください
2. 同じ製品ファミリーに属する製品は、それに応じて使用する必要があります。
(ビデオ チュートリアルの推奨:
java ビデオ チュートリアル 抽象ファクトリ パターンのさまざまな役割を見てみましょう (ファクトリ メソッドと同じ) ):
以上が2020 年の新しい Java 面接の質問 - 設計パターンの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。