ファクトリ パターンは、Java で最も一般的に使用される設計パターンの 1 つです。このタイプのデザイン パターンは、オブジェクトを作成する最良の方法の 1 つを提供するため、作成パターンです。
ファクトリ パターンでは、オブジェクトを作成し、新しく作成されたオブジェクトを参照するために共通のインターフェイスを使用するための作成ロジックをクライアントに公開しません。 (推奨学習: java コース)
実装方法
Shape インターフェイスと、それを実装する特定のクラスを作成します。形状インターフェイス。ファクトリ クラス ShapeFactory は次のステップで定義されます。
FactoryPatternDemo これは、ShapeFactory を使用して Shape オブジェクトを取得するデモ クラスです。情報 (CIRCLE/RECTANGLE/SQUARE) を ShapeFactory に渡し、必要なオブジェクト タイプを取得します。
#ファクトリ パターンの実装構造を次の図に示します。-
ステップ 1
インターフェイスの作成 -
Shape.java public interface Shape { void draw(); }
ステップ 2
同じインターフェイスを実装する具象クラスを作成します。いくつかのクラスを以下に示します。 -Rectangle.java public class Rectangle implements Shape { @Override public void draw() { System.out.println("Inside Rectangle::draw() method."); } } Square.java public class Square implements Shape { @Override public void draw() { System.out.println("Inside Square::draw() method."); } } Circle.java public class Circle implements Shape { @Override public void draw() { System.out.println("Inside Circle::draw() method."); } }
ステップ 3
指定された情報に基づいて特定のクラスのオブジェクトを生成するファクトリを作成します。
ShapeFactory.java public class ShapeFactory { //use getShape method to get object of type shape public Shape getShape(String shapeType){ if(shapeType == null){ return null; } if(shapeType.equalsIgnoreCase("CIRCLE")){ return new Circle(); } else if(shapeType.equalsIgnoreCase("RECTANGLE")){ return new Rectangle(); } else if(shapeType.equalsIgnoreCase("SQUARE")){ return new Square(); } return null; } }
ステップ 4
ファクトリを使用して、型などの情報を渡して特定のクラスのオブジェクトを取得します。
FactoryPatternDemo.java public class FactoryPatternDemo { public static void main(String[] args) { ShapeFactory shapeFactory = new ShapeFactory(); //get an object of Circle and call its draw method. Shape shape1 = shapeFactory.getShape("CIRCLE"); //call draw method of Circle shape1.draw(); //get an object of Rectangle and call its draw method. Shape shape2 = shapeFactory.getShape("RECTANGLE"); //call draw method of Rectangle shape2.draw(); //get an object of Square and call its draw method. Shape shape3 = shapeFactory.getShape("SQUARE"); //call draw method of circle shape3.draw(); } }
ステップ 5
検証出力は次のとおりです-
Inside Circle::draw() method. Inside Rectangle::draw() method. Inside Square::draw() method.
以上がJavaファクトリーデザインパターン講座の詳しい解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。