Java で抽象ファクトリー パターン コードを実装するにはどうすればよいですか?

WBOY
リリース: 2023-05-08 22:01:06
転載
1340 人が閲覧しました

ファクトリ メソッド パターンの問題を解決する: 特定のファクトリでは 1 種類の製品しか作成できませんが、実際のプロセスではファクトリで多数の製品を生成する必要がある場合が多く、この場合には抽象ファクトリ パターンを使用できます。

1. 抽象ファクトリ パターン ソリューション

定義: 特定のクラスを指定せずに、一連の関連オブジェクトまたは相互依存オブジェクトを作成するためのインターフェイスを提供します。特定のファクトリは、特定の製品の実装を担当します。工場で複数の製品を生産できるようにします。

2. Abstract Factory クラス図 UML

Java で抽象ファクトリー パターン コードを実装するにはどうすればよいですか?

3. Abstract Factory パターンの主な役割

Abstract Factory (AbstractFactory):提供されているプロダクトを作成するためのインターフェイスには、さまざまなレベルの複数のプロダクトを作成できる、プロダクトを作成するための複数のインターフェイス メソッドが含まれています。

コンクリート ファクトリ (ConcreteFactory): 抽象ファクトリによって定義されたメソッドを実装して、特定のプロダクトの作成を完了します

抽象製品 (Product): 製品の仕様を定義し、製品の主な機能とパフォーマンスを説明します。

具体的な製品 (ConcreteProduct): 抽象製品を定義するメソッドを実装し、製品を作成するための具体的なファクトリ、特定のファクトリと特定の製品の間の 1 対多の関係

4. コードの実装

抽象ファクトリ メソッドの実装:

public interface AbstractFactory {
    public Product1 createProduct1();
    public Product2 createProduct2();
}

public class ConcreteFactory1 implements AbstractFactory {
    @Override
    public Product1 createProduct1() {
        System.out.println("具体工厂1产生具体产品1...");
        return new ConcreteProduct1();
    }

    @Override
    public Product2 createProduct2() {
        System.out.println("具体工厂1产生具体产品2...");
        return new ConcreteProduct2();
    }
}
ログイン後にコピー

使用手順:

  • 抽象製品クラスを作成し、製品のパブリック メソッドを定義します

  • 特定の製品クラスを作成し (抽象製品インターフェイスを実装します)、生成された特定のプロダクトを定義します

  • 抽象ファクトリ クラスを作成し、特定のファクトリのパブリック インターフェイスを定義します。ファクトリ クラスはさまざまなレベルのプロダクトを作成できます

  • 特定のファクトリ クラスを作成し、対応する特定の製品インスタンスを作成するためのメソッドを定義します

  • ##呼び出し元は、特定のファクトリ クラスのメソッドを呼び出して、さまざまな特定の製品のインスタンスを作成します

  • #5. 抽象ファクトリ メソッドを再度検討します

問題の解決: 各ファクトリは 1 種類の製品しか作成できません。これがファクトリ メソッドの欠点です。

6. 長所と短所

利点:

    専用の新しいクラスを導入することなく、ファクトリ クラス内の製品に関連付けられたマルチレベルの製品を共同で管理できます。管理
  • #抽象ファクトリーはプログラムの拡張性を高めます。新しい製品ファミリーを追加するときに、開始と終了の原則を満たすためにソース コードを変更する必要はありません
  • 欠点:

製品ファミリーが新しい場合 製品タイプを追加するとき、すべてのファクトリ クラスを変更する必要があるため、抽象化が進み、理解が難しくなります。システム
  • 7. 適用例
King of Gloryで提供 ヒーローは数多く存在し、ヒーローはシューター、補助兵、ジャングラー、戦車などの職業に分かれています。さまざまなスキルと属性を持っています。戦車、魔術師、暗殺者などの複数のファクトリーのサブカテゴリーを宣言すると、各ファクトリーは対応するスキルのアプリケーションを作成できます。

以上がJava で抽象ファクトリー パターン コードを実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:yisu.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!