ホームページ >Java >&#&チュートリアル >Javaのファクトリーパターンとは何ですか

Javaのファクトリーパターンとは何ですか

小老鼠
小老鼠オリジナル
2023-12-26 16:14:491352ブラウズ

Java では、ファクトリ パターンはオブジェクトを作成するためのインターフェイスを提供する作成設計パターンですが、どのクラスをインスタンス化するかはサブクラスによって決定されます。ファクトリ パターンには主に次の役割が含まれます: 1. 抽象製品: 製品のインターフェイスを定義し、特定の製品クラスがこのインターフェイスを実装します; 2. 特定の製品: ファクトリ パターンによって作成されたオブジェクトである抽象製品インターフェイスを実装します。 3. 抽象ファクトリ: 製品を作成するためのインターフェイスが提供され、ファクトリ メソッドを使用して製品をインスタンス化することを宣言します; 4. 具象ファクトリ: 抽象ファクトリ インターフェイスを実装し、特定の製品のインスタンス化を担当します。

Javaのファクトリーパターンとは何ですか

このチュートリアルのオペレーティング システム: Windows 10 システム、Dell G3 コンピューター。

Java では、ファクトリ パターンはオブジェクトを作成するためのインターフェイスを提供する作成デザイン パターンですが、どのクラスをインスタンス化するかはサブクラスによって決定されます。このようにして、クラスのインスタンス化プロセスがそのサブクラスまで遅延されるため、クラスのインスタンス化はそのサブクラスによって決定できます。

ファクトリ パターンには主に次の役割が含まれます:

抽象プロダクト (Product): 製品のインターフェイスと特定の製品を定義します。クラスはこのインターフェイスを実装します。

具体的なプロダクト: 抽象的なプロダクト インターフェイスを実装し、ファクトリ パターンによって作成されるオブジェクトです。

Abstract Factory (Creator): 製品を作成するためのインターフェイスを宣言し、ファクトリ メソッドを使用して製品をインスタンス化します。

コンクリート ファクトリ (コンクリート クリエーター): 抽象ファクトリ インターフェイスを実装し、特定の製品のインスタンス化を担当します。

ファクトリ パターンを使用する主な利点は、クライアント コードを特定のクラス実装から切り離すことです。クライアントは、抽象ファクトリと抽象プロダクトのインターフェイスを知っていればよいだけですが、知っている必要があります。特定の製品の実装の詳細を知る必要はありません。

#次に、単純なファクトリ パターンの例を示します:

##

// 抽象产品
interface Product {
    void display();
}
// 具体产品A
class ConcreteProductA implements Product {
    @Override
    public void display() {
        System.out.println("Product A");
    }
}
// 具体产品B
class ConcreteProductB implements Product {
    @Override
    public void display() {
        System.out.println("Product B");
    }
}
// 抽象工厂
interface Creator {
    Product createProduct();
}
// 具体工厂A,用于创建ProductA
class ConcreteCreatorA implements Creator {
    @Override
    public Product createProduct() {
        return new ConcreteProductA();
    }
}
// 具体工厂B,用于创建ProductB
class ConcreteCreatorB implements Creator {
    @Override
    public Product createProduct() {
        return new ConcreteProductB();
    }
}
// 客户端代码
public class Client {
    public static void main(String[] args) {
        Creator creatorA = new ConcreteCreatorA();
        Product productA = creatorA.createProduct();
        productA.display();  // 输出: Product A
        Creator creatorB = new ConcreteCreatorB();
        Product productB = creatorB.createProduct();
        productB.display();  // 输出: Product B
    }
}


この例では、Product は抽象的な製品インターフェイスであり、ConcreteProductA と ConcreteProductB は特定の製品の実装です。 Creator は抽象ファクトリ インターフェイスであり、ConcreteCreatorA と ConcreteCreatorB は具象ファクトリの実装です。クライアントは、特定の製品クラスを直接インスタンス化せずに、特定のファクトリのファクトリ メソッドを呼び出すことによって、特定の製品のインスタンスを作成します。このようにして、製品の実装を変更する必要がある場合、クライアント コードに影響を与えることなく、特定のファクトリの実装を変更するだけで済みます。

以上がJavaのファクトリーパターンとは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。