Подтвердить что ты не робот

Лучший шаблон дизайна для функции "отмены"

Возможный дубликат:
Шаблон проектирования для Undo Engine

В целом, как вы относитесь к поддержке функции "отмены" в вашем приложении? Я работал над веб-приложениями и приложениями для настольных компьютеров, и я никогда не чувствовал себя комфортно в любой системе "отмены", которую я сделал.

4b9b3361

Ответ 1

Я считаю, что это должен быть Command шаблон дизайна.

Вот статья о многоуровневом Undo/Redo с шаблоном команды.

EDIT: second о многоуровневом Undo/Redo с шаблоном Memento.

Так что, возможно, это можно сделать с обоими.

Ответ 3

Я проголосовал бы за командный шаблон над Memento. Memento будет намного дороже, чем командные шаблоны для функций Undo/Redo.

Захват и восстановление состояния объекта будет довольно дорогостоящим делом по сравнению с просто выполнением или отменой действие на любой совместимый объект.