Добавлен lentinant
Делаю небольшое тестовое задание на собеседование. Задание довольно простое - примитивный графический редактор, с размещением, вращением, перемещением и удалением фигур, а также возможностью сохранения и загрузки сцены. По сути, всё уже сделано, кроме одного, последнего пункта - Undo/Redo. Надо сделать возможность отменять все вышеуказанные действия.
Собсно, вопрос - как лучше всего реализовать Undo/Redo? В принципе, можно сделать какую-то универсальную структуру, отображающую изменение фигуры, в ходе изменений заносить новые структуры в список, при нажатии кнопки, совершать обратные действия, а саму структуру заносить в список Redo.
Но, хочу услышать мнение со стороны.
Принятый ответ
В общем, сделал структурой, в которой записывается инфа о состоянии вершины, и совершенное действие (энумератором). Отменяет не все действия, но для отмены базовых работает. Ибо для отмены, например, очистки и загрузки сцены, нужно реально делать снапшоты.
`
ОЖИДАНИЕ РЕКЛАМЫ...
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
Ред. lentinant
Скажем объект-действие "очистки" имеет: