Invoker (TextEditor):?
- The TextEditor class is the invoker that invokes commands. It holds a
stack of commands (_commandHistory) and is responsible for executing
and undoing commands. When a command is executed, it’s pushed onto the
stack. The Undo() method pops the last executed command and undoes its
action.
public class TextEditor
private readonly Stack<ICommand> _commandHistory = new
Stack<ICommand>();
public void ExecuteCommand(ICommand command)
command.Execute();
_commandHistory.Push(command);
public void Undo()
if (_commandHistory.Count > 0)
var command = _commandHistory.Pop();
command.Undo();
Follow: