Cet article présente principalement en détail le modèle d'usine simple de l'apprentissage du modèle de conception Java, qui a une certaine valeur de référence. Les amis intéressés peuvent se référer à
Modèle d'usine simple
Le modèle d'usine simple est. un modèle de création, également appelé modèle de méthode Static Factory, mais ce n'est pas l'un des 23 modèles de conception GOF. Le modèle d'usine simple utilise un objet d'usine pour décider quelle instance de classe de produits créer. Le modèle d'usine simple est le modèle le plus simple et le plus pratique de la famille des modèles d'usine et peut être compris comme une implémentation spéciale de différents modèles d'usine.
Utilisez le modèle d'usine simple pour concevoir une calculatrice.
1 : Créer une classe d'opération
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 : Créer une classe d'addition.
class OpeartionAdd extends Operation { public double getResult(){ double result=0; result=num1+num2; return result; } }
3 : Créer une classe de soustraction.
public class OpeartionSub extends Operation { public double getResult(){ double result=0; result=num1-num2; return result; } }
4 : Créer une classe de multiplication.
public class OperationMul extends Operation { public double getResult(){ double result=0; result=num1*num2; return result; } }
5 : Créer une classe de division.
public class Operationp extends Operation { public double getResult(){ double result=0; result=num1/num2; return result; } }
6 : Après avoir terminé les classes d'opérations de base, vous constaterez que vous devez instancier différentes classes en fonction de l'addition, de la soustraction, de la multiplication et de la division requises. cette question, vous avez besoin d’un type d’usine.
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; } }
La classe factory crée différents objets selon différentes opérations Voici l'utilisation du polymorphisme.
7 : Classe de test
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 : Sortie console :
result=3.0
Avantages : La classe d'usine simple est la clé de l'ensemble du modèle, qui contient le jugement logique nécessaire pour déterminer quel objet de classe spécifique doit être créé sur la base d'informations externes
En implémentant le modèle d'usine simple, les utilisateurs n'ont pas besoin de comprendre comment le modèle d'usine simple est créé. l'objet est créé, à condition de simplement transmettre les informations nécessaires.
Inconvénients : La classe usine centralise la logique de création de toutes les instances, violant le principe d'allocation de cohésion élevée.
À mesure que le nombre de catégories de produits spécifiques dans le système continue d'augmenter, il est nécessaire de modifier constamment les catégories d'usine, ce qui est difficile à maintenir et à développer. Dans le même temps, cela viole également le principe d’ouverture et de clôture.
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!