Как реализовать функцию отмены?

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

  • Добавление примечаний к объекту
  • Раскрашивание объекта
  • Пометка объекта строкой

Теперь я подумал, как это реализовать. Сначала я подумал о классе действий, который является абстрактным базовым классом для трех различных действий, которые может выполнять пользователь. Каждый раз, когда пользователь выполняет эти действия, создается новый соответствующий экземпляр подкласса этого абстрактного класса Action, который вставляется в список, содержащий все действия.

Когда пользователь хочет что-то отменить, список отображается для пользователь и он может выбрать, какое действие он хочет отменить.

Теперь я подумал, что нужно сохранить в таком объекте действия:

  • состояние объекта перед действием
  • фактическое действие, которое было предпринято (например, строка, которая была добавлена ​​в примечания к объекту)

Я не уверен, достаточно ли этого. Я также подумал о чем-то вроде хронологического упорядочения, но это должно быть необходимо, поскольку список можно поддерживать в хронологическом порядке.

Есть ли еще какие-то вещи, которые мне следует учесть?

8
задан Nate 13 December 2010 в 08:05
поделиться