В моем приложении я хочу предоставить пользователю небольшую функциональность отмены. Существует не так много действий, которые пользователь может отменить. В частности, действия:
- Добавление заметок к объекту
- Цвет объекта
- Пометить объект строкой
Теперь я подумал, как это реализовать. Сначала я подумал о классе действий, который является абстрактным базовым классом для трех различных действий, которые может выполнять пользователь. Каждый раз, когда пользователь выполняет эти действия, новый соответствующий экземпляр подкласса этого абстрактного класса Action создается и вставляется в список, содержащий все действия.
Всякий раз, когда пользователь хочет что-то отменить, список отображается для пользователя, и он может выбрать, какое действие он хочет отменить.
Теперь я думал, что должно храниться в таком объекте действия:
- состояние объекта перед действием
- фактическое действие, которое было предпринято (например, строка, которая была добавлена к заметкам объекта)
Я не уверен, что этого достаточно. Я также подумал о чем-то вроде хронологического упорядочения, но это должно быть необходимо, поскольку список можно поддерживать в хронологическом порядке.
Есть ли еще что-то, что я должен рассмотреть?