ホームページ  >  記事  >  Java  >  Javaファクトリーデザインパターン講座の詳しい解説

Javaファクトリーデザインパターン講座の詳しい解説

(*-*)浩
(*-*)浩オリジナル
2019-11-26 14:30:461988ブラウズ

Javaファクトリーデザインパターン講座の詳しい解説

ファクトリ パターンは、Java で最も一般的に使用される設計パターンの 1 つです。このタイプのデザイン パターンは、オブジェクトを作成する最良の方法の 1 つを提供するため、作成パターンです。

ファクトリ パターンでは、オブジェクトを作成し、新しく作成されたオブジェクトを参照するために共通のインターフェイスを使用するための作成ロジックをクライアントに公開しません。 (推奨学習: java コース)

実装方法

Shape インターフェイスと、それを実装する特定のクラスを作成します。形状インターフェイス。ファクトリ クラス ShapeFactory は次のステップで定義されます。

FactoryPatternDemo これは、ShapeFactory を使用して Shape オブジェクトを取得するデモ クラスです。情報 (CIRCLE/RECTANGLE/SQUARE) を ShapeFactory に渡し、必要なオブジェクト タイプを取得します。

#ファクトリ パターンの実装構造を次の図に示します。-

Javaファクトリーデザインパターン講座の詳しい解説

ステップ 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 サイトの他の関連記事を参照してください。

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