Maison > Java > javaDidacticiel > Apprendre le modèle d'usine simple en Java

Apprendre le modèle d'usine simple en Java

黄舟
Libérer: 2017-10-13 10:16:10
original
1191 Les gens l'ont consulté

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();
}
Copier après la connexion

2 : Créer une classe d'addition.


class OpeartionAdd extends Operation {

  public double getResult(){
    double result=0;
    result=num1+num2;
    return result;
  }
}
Copier après la connexion

3 : Créer une classe de soustraction.


public class OpeartionSub extends Operation {
 
  public double getResult(){
    double result=0;
    result=num1-num2;
    return result;
  }
}
Copier après la connexion

4 : Créer une classe de multiplication.


public class OperationMul extends Operation {

  public double getResult(){
    double result=0;
    result=num1*num2;
    return result;
  }
}
Copier après la connexion

5 : Créer une classe de division.


public class Operationp extends Operation {
 
  public double getResult(){
    double result=0;
    result=num1/num2;
    return result;
  }
}
Copier après la connexion

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;
  }
 
}
Copier après la connexion

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

}
Copier après la connexion

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal