При написании калькуляторной программы вы можете отделить бизнес -логику от дисплея, а бизнес -логика инкапсулируется в класс (инкапсуляция); Если вы хотите добавить новую операцию, вы можете сначала создать базовый класс операции, а затем различные операции унаследованы от операционного класса и реализовать виртуальную функцию getResult (). В настоящее время добавление новой операции требует только нового класса, то есть никаких предыдущих операций не требуется для участия в компиляции. Как мне сообщить калькулятору, какую операцию я хочу использовать? Следует рассмотреть отдельный класс, чтобы сделать этот процесс создания экземпляров, и это фабрика. Создайте класс OperationFactory, пропустите параметры, а функция CreateOperate может создать экземпляр соответствующего объекта.
Код Java выглядит следующим образом:
Public Class OperationFactory {public Static Abstract Class Operation {private Double _numbera = 0; Приватный двойной _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; } абстрактный double getResult (); // TODO Auto Generated Constructor STUB} Public Static Class Operation extends Operation {Double getResult () {double result = get_numbera () + get_numberb (); результат возврата; }} public static class operationsUb extends operation {double getResult () {double result = get_numbera () - get_numberb (); результат возврата; }} публичная статическая операция CreateOperate (String Operation) {Operation Operator = null; if (Operate.equals ("+")) {Operator = new OperationAdd (); } else if (operate.equals ("-")) {operator = new OperationBub (); } Оператор возврата; } public static void main (string [] args) {оператор операции; operator = rayFactory.CreateOperate ("+"); operator.set_numbera (1); operator.set_numberb (2); double result = operator.getResult (); }}Выше всего содержание этой статьи. Я надеюсь, что это будет полезно для каждого обучения, и я надеюсь, что все будут поддерживать Wulin.com больше.