Heim  >  Artikel  >  Java  >  Erlernen des einfachen Fabrikmusters in Java

Erlernen des einfachen Fabrikmusters in Java

黄舟
黄舟Original
2017-10-13 10:16:101096Durchsuche

In diesem Artikel wird hauptsächlich das einfache Fabrikmuster des Java-Designmusterlernens ausführlich vorgestellt, das einen gewissen Referenzwert hat. Interessierte Freunde können sich auf

Einfaches Fabrikmuster

beziehen ein Erstellungsmuster, auch Static Factory Method-Muster genannt, aber es ist nicht eines der 23 GOF-Entwurfsmuster. Das einfache Factory-Muster verwendet ein Factory-Objekt, um zu bestimmen, welche Produktklasseninstanz erstellt werden soll. Das einfache Factory-Pattern ist das einfachste und praktischste Pattern in der Factory-Pattern-Familie und kann als spezielle Implementierung verschiedener Factory-Patterns verstanden werden.

Verwenden Sie das einfache Fabrikmuster, um einen Taschenrechner zu entwerfen.

1: Erstellen Sie eine Operationsklasse


package EasyFactoryModel;

abstract class Operation {

  public double num1=0;
  public double num2=0;
  public double getNum1() {
    return num1;
  }
  public void setNum1(double num1) {
    this.num1 = num1;
  }
  public double getNum2() {
    return num2;
  }
  public void setNum2(double num2) {
    this.num2 = num2;
  }
  
  public abstract double getResult();
}

2: Erstellen Sie eine Additionsklasse.


class OpeartionAdd extends Operation {

  public double getResult(){
    double result=0;
    result=num1+num2;
    return result;
  }
}

3: Erstellen Sie eine Subtraktionsklasse.


public class OpeartionSub extends Operation {
 
  public double getResult(){
    double result=0;
    result=num1-num2;
    return result;
  }
}

4: Erstellen Sie eine Multiplikationsklasse.


public class OperationMul extends Operation {

  public double getResult(){
    double result=0;
    result=num1*num2;
    return result;
  }
}

5: Erstellen Sie eine Divisionsklasse.


public class Operationp extends Operation {
 
  public double getResult(){
    double result=0;
    result=num1/num2;
    return result;
  }
}

6: Nach Abschluss der grundlegenden Operationsklassen werden Sie feststellen, dass Sie verschiedene Klassen entsprechend der erforderlichen Addition, Subtraktion, Multiplikation und Division instanziieren müssen In dieser Angelegenheit benötigen Sie eine Fabrikart.


public class OperationFactory {
 
  public static Operation creatOpera(String operation){
     
    Operation oper=null;
    switch(operation){
     
    case "+":oper=new OpeartionAdd();break;
    case "-":oper=new OpeartionSub();break;
    case "*":oper=new OperationMul();break;
    case "/":oper=new Operationp();break;
     
    }
    return oper;
  }
 
}

Factory-Klasse erstellt verschiedene Objekte entsprechend unterschiedlicher Operationen. Hier wird Polymorphismus verwendet.

7: Testklasse


public class Calculator {

  public static void main(String[] args) {
    
    Operation oper;
    String operation="+";
    oper=OperationFactory.creatOpera(operation);
    oper.num1=1;
    oper.num2=2;
    double result=0;
    result=oper.getResult();
    System.out.println("result="+result);
    
  }

}

8: Konsolenausgabe:

Ergebnis=3.0

Vorteile: Die einfache Factory-Klasse ist der Schlüssel zum gesamten Muster, das die notwendige logische Beurteilung enthält, um anhand externer Informationen zu bestimmen, welches spezifische Klassenobjekt erstellt werden soll.
Durch die Implementierung des einfachen Factory-Musters müssen Benutzer nicht verstehen, wie das funktioniert Das Objekt wird erstellt, solange nur die erforderlichen Informationen übergeben werden.

Nachteile: Die Factory-Klasse zentralisiert die Erstellungslogik aller Instanzen und verstößt damit gegen das Prinzip der Zuweisung mit hoher Kohäsion.
Da die Anzahl spezifischer Produktkategorien im System immer weiter zunimmt, ist es notwendig, die Fabrikkategorien ständig zu ändern, was schwierig zu pflegen und zu erweitern ist. Gleichzeitig verstößt es auch gegen das Prinzip der Offenheit und Geschlossenheit.

Das obige ist der detaillierte Inhalt vonErlernen des einfachen Fabrikmusters in Java. 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