Invoker (TextEditor):?
Short answer: 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
Example code
{
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(); }
}
}
Real-world example (ShopNest)
Use a GoF pattern in ShopNest only when it removes duplication or makes a change safer—explain the problem it solves in the interview.
Say this in the interview
- Define — one clear sentence (the short answer above).
- Example — relate it to a project like ShopNest or your real work.
- Trade-off — when you would not use it.
Share this Q&A
Share preview image: https://www.toolliyo.com/images/toolliyo-logo.png