Heim  >  Artikel  >  Java  >  Ausführliche Erläuterung des Java-Factory-Designmusterkurses

Ausführliche Erläuterung des Java-Factory-Designmusterkurses

(*-*)浩
(*-*)浩Original
2019-11-26 14:30:461948Durchsuche

Ausführliche Erläuterung des Java-Factory-Designmusterkurses

Factory-Muster ist eines der am häufigsten verwendeten Entwurfsmuster in Java. Diese Art von Entwurfsmuster ist ein Erstellungsmuster, da dieses Muster eine der besten Möglichkeiten zum Erstellen von Objekten bietet.

Im Factory-Muster stellen wir dem Client die Erstellungslogik nicht zur Verfügung, um Objekte zu erstellen, und verwenden eine gemeinsame Schnittstelle, um auf die neu erstellten Objekte zu verweisen.​ (Empfohlenes Lernen: Java-Kurs)

Implementierungsmethode

Wir erstellen eine Shape-Schnittstelle und eine konkrete Klasse, die das implementiert Shape-Schnittstelle. Im nächsten Schritt wird eine Factory-Klasse ShapeFactory definiert.

FactoryPatternDemo Dies ist eine Demonstrationsklasse, die ShapeFactory verwendet, um ein Shape-Objekt zu erhalten. Die Informationen (CIRCLE/RECTANGLE/SQUARE) werden an die ShapeFactory übergeben, um den erforderlichen Objekttyp zu erhalten.

Die Struktur der Implementierung des Fabrikmusters ist in der Abbildung unten dargestellt-

Ausführliche Erläuterung des Java-Factory-Designmusterkurses

Schritt 1

Erstellen Sie eine Schnittstelle –

Shape.java
public interface Shape {
   void draw();
}

Schritt 2

Erstellen Sie eine konkrete Klasse, die dieselbe Schnittstelle implementiert. Nachfolgend werden mehrere Klassen angezeigt -

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.");
   }
}

Schritt 3

Erstellen Sie eine Fabrik, um Objekte bestimmter Klassen basierend auf den angegebenen Informationen zu generieren.

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;
   }
}

Schritt 4

Verwenden Sie die Fabrik, um das Objekt der spezifischen Klasse zu erhalten, indem Sie Informationen wie den Typ übergeben.

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();
   }
}

Schritt 5

Die Verifizierungsausgabe sieht wie folgt aus:

Inside Circle::draw() method.
Inside Rectangle::draw() method.
Inside Square::draw() method.

Das obige ist der detaillierte Inhalt vonAusführliche Erläuterung des Java-Factory-Designmusterkurses. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn