Méthode de mise en œuvre
Nous allons créer une interface Shape et des classes concrètes qui implémentent l'interface Shape. Une classe d'usine ShapeFactory sera définie à l'étape suivante.
FactoryPatternDemo Il s'agit d'une classe de démonstration qui utilisera ShapeFactory pour obtenir un objet Shape. Il transmettra les informations (CERCLE/RECTANGLE/SQUARE) à ShapeFactory pour obtenir le type d'objet requis.
La structure de mise en œuvre du modèle d'usine est présentée dans la figure ci-dessous -
java-61.jpg
Étape 1
Créer une interface-
Shape.java
publicinterfaceShape{
voiddraw();
}
Étape 2
Créez une classe concrète qui implémente la même interface. Plusieurs catégories sont présentées ci-dessous-
Rectangle.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.");
}
}
Étape 3
Créez une usine pour générer des objets de classes spécifiques en fonction des informations données.
ShapeFactory.java
publicclassShapeFactory{
// utilisez la méthode getShape pour obtenir un objet de type forme
publicShapegetShape(StringshapeType){
if(shapeType==null){
returnnull;
}
if(shapeType.equalsIgnoreCase("CIRCLE")){
returnnewCircle();
}elseif(shapeType.equalsIgnoreCase("RECTANGLE")){
returnnewRectangle();
}elseif(shapeType.equalsIgnoreCase("CARRÉ")){
returnnewSquare();
}
returnnull;
}
}
Étape 4
Utilisez une fabrique pour obtenir un objet d'une classe spécifique en transmettant des informations telles que le type.
FactoryPatternDemo.java
publicclassFactoryPatternDemo{
publicstaticvoidmain(String[]args){
ShapeFactoryshapeFactory=newShapeFactory();
// récupère un objet de Circle et appelle sa méthode de dessin.
Shapeshape1=shapeFactory.getShape("CERCLE");
//appelez la méthode de dessin deCircle
shape1.draw();
// récupère un objet de rectangle et appelle sa méthode de dessin.
Shapeshape2=shapeFactory.getShape("RECTANGLE");
//appel de la méthode de dessin du rectangle
shape2.draw();
// récupère un objet de Square et appelle sa méthode de dessin.
Shapeshape3=shapeFactory.getShape("CARRÉ");
//appelez la méthode de dessin du cercle
shape3.draw();
}
}
Étape 5
Les résultats de la vérification sont les suivants :
InsideCircle::draw()méthode.
InsideRectangle::draw()méthode.
InsideSquare::draw()method.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!