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