package vn.edu.rmit.examples; public class CalculatorCommand implements Command { private Calculator calculator; private char operator; private int operand; public CalculatorCommand(Calculator c, char op, int operand) { this.calculator = c; this.operator = op; this.operand = operand; } @Override public void execute() { calculator.performOperation(operator, operand); } @Override public void unexecute() { calculator.performOperation(getInverse(operator), operand); } private char getInverse(char o) { char undo = ' '; switch(o) { case '+': undo = '-'; break; case '-': undo = '+'; break; case '*': undo = '/'; break; case '/': undo = '*'; break; } return undo; } }