Implementierungsmethode
Wir werden eine Shape-Schnittstelle und konkrete Klassen erstellen, die die Shape-Schnittstelle implementieren. 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 Factory-Musters ist in der folgenden Abbildung dargestellt:
java-61.jpg
Schritt 1
Erstellen Sie eine Schnittstelle-
Shape.java
publicinterfaceShape{
voiddraw();
}
Schritt 2
Erstellen Sie eine konkrete Klasse, die dieselbe Schnittstelle implementiert. Nachfolgend werden mehrere Kategorien angezeigt:
Rechteck.java
publicclassRectangleimplementsShape{
@Override
publicvoiddraw(){
System.out.println("InsideRectangle::draw()method.");
}
}
Square.java
publicclassSquareimplementsShape{
@Override
publicvoiddraw(){
System.out.println("InsideSquare::draw()method.");
}
}
Circle.java
publicclassCircleimplementsShape{
@Override
publicvoiddraw(){
System.out.println("InsideCircle::draw()method.");
}
}
Schritt 3
Erstellen Sie eine Fabrik, um Objekte bestimmter Klassen basierend auf gegebenen Informationen zu generieren.
ShapeFactory.java
publicclassShapeFactory{
//usegetShapemethodtogetobjectoftypeshape
publicShapegetShape(StringshapeType){
if(shapeType==null){
returnnull;
}
if(shapeType.equalsIgnoreCase("CIRCLE")){
returnnewCircle();
}elseif(shapeType.equalsIgnoreCase("RECTANGLE")){
returnnewRectangle();
}elseif(shapeType.equalsIgnoreCase("SQUARE")){
returnnewSquare();
}
returnnull;
}
}
Schritt 4
Verwenden Sie eine Factory, um ein Objekt einer bestimmten Klasse abzurufen, indem Sie Informationen wie den Typ übergeben.
FactoryPatternDemo.java
publicclassFactoryPatternDemo{
publicstaticvoidmain(String[]args){
ShapeFactoryshapeFactory=newShapeFactory();
//getanobjectofCircleandcallitsdrawmethod.
Shapeshape1=shapeFactory.getShape("CIRCLE");
//calldrawmethodofCircle
shape1.draw();
//getanobjectofRectangleandcallitsdrawmethod.
Shapeshape2=shapeFactory.getShape("RECTANGLE");
//calldrawmethodofRectangle
shape2.draw();
//getanobjectofSquareandcallitsdrawmethod.
Shapeshape3=shapeFactory.getShape("SQUARE");
//calldrawmethodofcircle
shape3.draw();
}
}
Schritt 5
Die Ergebnisse der Überprüfungsausgabe lauten wie folgt:
InsideCircle::draw()method.
InsideRectangle::draw()method.
InsideSquare::draw()method.
Das obige ist der detaillierte Inhalt vonSo schreiben Sie Code für ein Java-Factory-Designmuster. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!