Lors de la rédaction d'un programme de calculatrice, vous pouvez séparer la logique métier de l'affichage et la logique métier est encapsulée en classe (encapsulation); Si vous souhaitez ajouter une nouvelle opération, vous pouvez d'abord créer une classe d'opération de base, puis diverses opérations sont héritées de la classe d'opération et implémenter la fonction virtuelle GetResult (). Pour le moment, l'ajout d'une nouvelle opération ne nécessite qu'une nouvelle classe, c'est-à-dire qu'aucune opération précédente n'est nécessaire pour participer à la compilation. Comment puis-je faire savoir à la calculatrice de l'opération que je souhaite utiliser? Une classe distincte doit être considérée pour faire ce processus de création d'instances, et c'est l'usine. Créez une classe OperationFactory, transmettez des paramètres, et la fonction CreateOperate peut instancier l'objet approprié.
Le code Java est le suivant:
classe publique OperationFactory {public static abstrait class operation {private double _numbera = 0; Double privé _numberb = 0; public double get_numbera () {return _numbera; } public void set_numbera (double _numbera) {this._numbera = _numbera; } public double get_numberb () {return _numberb; } public void set_numberb (double _numberb) {this._numberb = _numberb; } Résumé double getResult (); // TODO STUD DE CONTRÔTEUR AUTO AUTO} PUBLIC STATIC CLASSE OperationAdd étend l'opération {double getResult () {double résultat = get_numbera () + get_numberb (); Résultat de retour; }} public static class OperationsUb étend l'opération {double getResult () {double résultat = get_numbera () - get_numberb (); Résultat de retour; }} Opération statique publique CreateOperate (String Operation) {Operation Operator = NULL; if (operate.equals ("+")) {operator = new operationadd (); } else if (operate.equals ("-")) {operator = new OperationsUb (); } opérateur de retour; } public static void main (String [] args) {opérateur d'opération; Operator = OperationFactory.CreateEperate ("+"); operator.set_numbumbera (1); operator.set_numberb (2); Double result = operator.getResult (); }}Ce qui précède est tout le contenu de cet article. J'espère que cela sera utile à l'apprentissage de tous et j'espère que tout le monde soutiendra davantage Wulin.com.