詳細は次のとおりです:
#ファクトリ モードは主にオブジェクト作成のための遷移インターフェイスを提供し、オブジェクト作成の特定のプロセスを保護および分離して柔軟性を向上させるという目的を達成しますファクトリー モードは次の 3 つのカテゴリに分かれています: 1) シンプル ファクトリ: 一連の製品の生産には役に立たない;2) ファクトリ メソッド: ポリモーフィック ファクトリとも呼ばれます;
3 ) 抽象ファクトリー パターン (Abstract Factory): ツールボックスとしても知られ、製品ファミリーを生成しますが、新しい製品の生成には役立ちません;
1. 単純なファクトリー パターン
シンプルファクトリパターンは静的ファクトリメソッドパターンとも呼ばれます。名前の変更から、このモードは非常に単純であることがわかります。その目的は単純で、オブジェクトを作成するためのインターフェイスを定義することです。単純なファクトリ パターンでは、ファクトリ クラスが製品クラスのインスタンス化呼び出しの中心にあり、通過する車両の流れの中に立ってどの車両を通過させるかを決める交通警察官と同じように、どの製品クラスをインスタンス化するかを決定します。一方向の車両はその方向に流れます。まずその構成を見てみましょう:
2) 抽象的な製品の役割: これは通常、特定の製品または実装されたインターフェイスによって継承される親クラスです。 Javaではインターフェースまたは抽象クラスによって実装されます。
3) 特定の製品ロール: ファクトリ クラスによって作成されたオブジェクトは、このロールのインスタンスです。 Javaの具象クラスによって実装されます。
2. ファクトリ メソッド パターン
ファクトリ メソッド パターンは、単純なファクトリ パターンをさらに抽象化し、推進したものです。ファクトリ メソッド パターンは、もはや 1 つだけで決定されるわけではありません。ファクトリ クラス. 製品クラスをインスタンス化するかどうかの決定は、抽象ファクトリのサブクラスに委ねられます。その構成を見てみましょう: 1) 抽象ファクトリ ロール: これはファクトリ メソッド パターンの中核であり、アプリケーションとは何の関係もありません。これは、特定のファクトリ ロールが実装する必要があるインターフェイス、または継承する必要がある親クラスです。 Java では、抽象クラスまたはインターフェイスによって実装されます。2) 特定のファクトリ ロール: 特定のビジネス ロジックに関連するコードが含まれています。特定の製品に対応するオブジェクトを作成するためにアプリケーションによって呼び出されます。
3) 抽象的な製品の役割: 特定の製品または実装されたインターフェイスによって継承される親クラスです。 Java では、通常、実装する抽象クラスまたはインターフェイスが存在します。
4) 特定の製品ロール: 特定のファクトリ ロールによって作成されたオブジェクトは、このロールのインスタンスです。 Java の特定のクラスによって実装されます。
//抽象产品角色 public interface Moveable { void run(); } //具体产品角色 public class Plane implements Moveable { @Override public void run() { System.out.println("plane...."); } } public class Broom implements Moveable { @Override public void run() { System.out.println("broom....."); } } //抽象工厂 public abstract class VehicleFactory { abstract Moveable create(); } //具体工厂 public class PlaneFactory extends VehicleFactory{ public Moveable create() { return new Plane(); } } public class BroomFactory extends VehicleFactory{ public Moveable create() { return new Broom(); } } //测试类 public class Test { public static void main(String[] args) { VehicleFactory factory = new BroomFactory(); Moveable m = factory.create(); m.run(); } }
3. 抽象ファクトリ パターン
コードは次のとおりです//抽象工厂类 public abstract class AbstractFactory { public abstract Vehicle createVehicle(); public abstract Weapon createWeapon(); public abstract Food createFood(); } //具体工厂类,其中Food,Vehicle,Weapon是抽象类, public class DefaultFactory extends AbstractFactory{ @Override public Food createFood() { return new Apple(); } @Override public Vehicle createVehicle() { return new Car(); } @Override public Weapon createWeapon() { return new AK47(); } } //测试类 public class Test { public static void main(String[] args) { AbstractFactory f = new DefaultFactory(); Vehicle v = f.createVehicle(); v.run(); Weapon w = f.createWeapon(); w.shoot(); Food a = f.createFood(); a.printName(); } }
以上がJavaデザインパターンのファクトリパターンを実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。