Java デザイン パターン: ファクトリ メソッド パターン

ファクトリメソッドパターン

意味:

オブジェクトを作成するためのインターフェイスを定義し、どのクラスをインスタンス化するかをサブクラスに決定させます。ファクトリ メソッドは、クラスのインスタンス化をサブクラスに延期します。

ファクトリ メソッド パターンはファクトリを抽象化し、オブジェクトを作成するためのインターフェイスを定義します。新しいプロダクトが追加されるたびに、そのプロダクトと対応する実装ファクトリー クラスを追加し、オブジェクトのインスタンスをサブクラスに遅延させるだけで済み、設計がオープンとクローズの原則に準拠するようになります。使用するときは、製品に対応する特定の工場を知り、特定の作成プロセスに注意を払うだけでよく、特定の製品カテゴリーの名前を知る必要さえありません。実際にどの製品を作るか決めました。

ただし、欠点は、製品を追加するたびに、特定の製品クラスを追加してファクトリ クラスを実装する必要があることです。これにより、システム内のクラスの数が 2 倍になり、システムの複雑さがある程度増加し、処理速度も増加します。システム内の特定のクラスの数。

コード例:

製品関連のクラス:

abstract class Product {
    
    
    void product() {
    
    }
}

class ProductA extends Product{
    
    
    void product(){
    
    
        System.out.println("产品A");
    }
}

class ProductB extends Product{
    
    
    void product(){
    
    
        System.out.println("产品B");
    }
}

ファクトリー関連のクラス:

interface Factory {
    
    
    Product creteProduct();
}

class FactoryProductA implements Factory{
    
    

    public ProductA creteProduct() {
    
    
        System.out.println("制造产品A...");
        return new ProductA();
    }
}

class FactoryProductB implements Factory {
    
    

    public ProductB creteProduct() {
    
    
        System.out.println("制造产品B...");
        return new ProductB();
    }
}

ユーザー関連のクラス:

public class FactoryMethod {
    
    

    public static void main(String[] args) {
    
    
        Factory factoryA = new FactoryProductA();
        factoryA.creteProduct().product();

        Factory factoryB = new FactoryProductB();
        factoryB.creteProduct().product();
    }

}

おすすめ

転載: blog.csdn.net/qq_40042416/article/details/126751035