Паттерн «Команда»
Коротко: Паттерн «Команда» упаковывает действие в объект. Так его можно сохранить, отложить, повторить или отменить.
Подробнее: Объект-команда содержит всё необходимое для выполнения (действие, получатель, параметры) и метод execute(), часто и undo(). Вызывающий (invoker) выполняет команды, не зная их деталей.
Подробности
- Отмена/повтор: стек выполненных команд…
См. также: паттерн «Стратегия», паттерн «Наблюдатель»