Я хочу, чтобы пользователь отменил/повторил действие столько раз, сколько сможет. Но если я просто сохраняю все предыдущие состояния (как в шаблоне Memento), это может привести к тому, что программа будет использовать слишком много памяти, чего я не хочу.
Список решений, которые я придумал:
- Сохраните состояния где-нибудь в файле и читайте только несколько состояний за раз. Таким образом, я не буду использовать много оперативной памяти, но чтение и запись в файл могут занять много времени (вероятно, придется запустить его в другом потоке).
- Вычислите разницу между два последовательных состояния и вместо этого сохраните их. Например, UNDO: DEL LIST[5] & REDO: INSERT LIST[5]
Подробнее здесь: https://stackoverflow.com/questions/496 ... -framework
Мобильная версия