ホームページ >Java >&#&チュートリアル >Javaデザインパターン ファクトリパターン(3種類)
ファクトリ パターン
1. シンプル ファクトリ
について
シンプル ファクトリ パターンのファクトリ クラスは、通常、静的メソッドを使用して、受け取ったさまざまなパラメーターに基づいてさまざまなオブジェクト インスタンスを返します。
コードを変更しないと拡張できません。
例
Product インターフェイス
//Product インターフェイス
public interface ProductI {
public void productName();
}
Product エンティティ クラス
public class ProductAimplements ProductI {
@Override
public void productName() {
System .out.println("製品 A");
}
}
public class ProductB は ProductI {
@Override
public void productName() {
System.out.println("product B");ファクトリクラス
//単純なファクトリパターン
public class Factory {
public ProductI create(String productName) {
switch (productName) {
case "A": use using ‐ ‐ use using ‐ ‐ ‐ ‐‐‐‐‐ ‐‐‐'' と `
new ProductB() を返します Factory();
製品I 製品A = 工場.create("A");
製品A.製品名();
製品I 製品B = 工場.create( "B"); productB.productName();
}
}
出力
製品 A
製品 B
ファクトリ メソッド
理解
ファクトリ メソッドは、各製品にファクトリ クラスを提供します。異なる製品インスタンスは、異なるファクトリ インスタンスを通じて作成されます。
同じ階層構造内で、どの製品もサポートされます。
例
プロダクトインターフェイス、プロダクトエンティティクラス、シンプルファクトリは同じです。
ファクトリーインターフェース
publicインターフェース FactoryI {
//ファクトリーの目的は製品を生産することです
public ProductI create();
}
ファクトリーエンティティクラス
public class FactoryAimplements FactoryI {
@Override
public ProductI create () {
new ProductA();
public static void main(String[] args) {
ProductI productA = FactoryA.create();名前();
//
FactoryB = new FactoryB();
ProductI productB = FactoryB.productName();
}
出力
product B
理解
抽象的なファクトリーは、概念的な製品ファミリーへの応答です。たとえば、各自動車会社は乗用車、トラック、バスを同時に生産したいと考えているため、各工場には乗用車、トラック、バスを作成する方法が必要です。
製品ファミリーの概念に応えて誕生しました。新しい製品ラインを追加するのは簡単ですが、新しい製品を追加することは不可能です。
ファクトリーメソッドとの違いは、抽象ファクトリーには複数の製品を生産できる複数のメソッド、つまり製品クラスターがあることが多いことです。
例
抽象ファクトリ クラス
// ファクトリ パターンの描画
public interface AbstractFactory {
public ProductAI createProductA();
public ProductBI createProductB()
}
ファクトリ エンティティ クラス
;public class Factory1implemented AbstractFactory {
@Override
public ProductAI createProductA() {
return new ProductA1();
}
@Override
public ProductBI createProductB() {
return new ProductB1();
}
}
public class Factory2implements AbstractFactory {
@Override
public ProductAI createProductA() {
return new ProductA2();
}
@Override
public ProductBI createProductB() {
return new ProductB2();
}
}
品インターフェイス
//产品インターフェイス
パブリックインターフェイス ProductBI {
public void productName();
}
//产品インターフェイス
パブリック インターフェイス ProductAI {
public void productName();
}
产品实体类
public class ProductA1implements ProductAI {
@Override
public void productName() {
System.out.println("product A1");
}
}
さらに多くのJava设计モード之工厂モード(三种)相关文章请关注PHP中文网!