// Constructor public CalculatorCommand(Calculator calculator, char @operator, int operand) { this._calculator = calculator; this._operator = @operator; this._operand = operand; }
/// <summary> /// Entry point into console application. /// </summary> static void Main() { Calculator myCalculator = new Calculator(); // Create user and let her compute (Invoker) User user = new User(); Command add100command = new CalculatorCommand(myCalculator, '+', 100); Command sub50command = new CalculatorCommand(myCalculator, '-', 50); Command multi10command = new CalculatorCommand(myCalculator, '*', 10); Command div2command = new CalculatorCommand(myCalculator, '/', 2); // User presses calculator buttons //Set the command //And executes the command user.ComputeCalculatorCommand(add100command); user.ComputeCalculatorCommand(sub50command); user.ComputeCalculatorCommand(multi10command); user.ComputeCalculatorCommand(div2command); // Undo 4 commands user.Undo(4); // Redo 3 commands user.Redo(3); // Wait for user Console.ReadKey(); }