Beim Schreiben eines Taschenrechnerprogramms können Sie die Geschäftslogik von der Anzeige trennen, und die Geschäftslogik wird in eine Klasse (Kapselung) eingekapselt. Wenn Sie einen neuen Betrieb hinzufügen möchten, können Sie zuerst eine Basisklasse von Betriebsklasse erstellen, und dann werden verschiedene Vorgänge aus der Betriebsklasse geerbt und die virtuelle Funktion getResult () implementieren. Zu diesem Zeitpunkt erfordert das Hinzufügen einer neuen Operation nur eine neue Klasse, dh keine früheren Operationen sind erforderlich, um an der Zusammenstellung teilzunehmen. Wie lasse ich den Taschenrechner wissen, welchen Vorgang ich verwenden möchte? Eine separate Klasse sollte in Betracht gezogen werden, um diesen Prozess des Erstellens von Instanzen durchzuführen, und das ist die Fabrik. Erstellen Sie eine OperationFactory -Klasse, übergeben Sie Parameter und die Funktion createOperate kann das entsprechende Objekt instanziieren.
Der Java -Code lautet wie folgt:
öffentliche Klasse OperationFactory {öffentliche statische Abstract -Klasse Operation {private double _numbera = 0; private double _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; } Abstract double getResult (); // Todo automatisch generierter Konstruktor Stub} öffentliche statische Klasse OperationAdd erweitert die Operation {double getResult () {double result = get_numbera () + get_numberb (); Rückgabeergebnis; }} public static class OperationsSub erweitert die Operation {double getResult () {double result = get_numbera () - get_numberb (); Rückgabeergebnis; }} public static operation createOperate (String -Operation) {Operation Operator = null; if (operation.equals ("+")) {operator = new OperationAdd (); } else if (operation.equals ("-")) {operator = new OperationsUb (); } Rückgabeoperator; } public static void main (String [] args) {Operation Operator; operator = operationFactory.createOperate ("+"); operator.set_numbera (1); operator.set_numberb (2); double result = operator.getResult (); }}Das obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, es wird für das Lernen aller hilfreich sein und ich hoffe, jeder wird Wulin.com mehr unterstützen.