Сам объект команды должен реализовывать функцию отмены / возврата.
Команды, как правило, выталкиваются и извлекаются из стека, поддерживаемого диспетчером команд для реализации многоуровневой отмены. Когда команды выполняются, они помещаются в стек, а когда они отменяются, они извлекаются из стека.
Шаблон сувенира будет использоваться вместе с шаблоном команды, он не заменяет использование шаблона команды. Он будет использоваться для поддержания состояния, необходимого для операции отмены.