Мое предложение состоит в том, чтобы определить конкретные требования отмены и их практические преимущества перед началом проектирования и реализации. Я унаследовал приложение WinForms, которое использовало последовательную отмену нескольких операций через стек общих объектов «действие» внутри. Однако оказалось, что никто из пользователей приложения, с которыми я общался, не пользовался и не запрашивал эту функцию! И как работает это конкретное приложение, если бы я был пользователем приложения, я бы просто не увидел себя использующим эту функцию.
Функциональность отмены могла бы быть более полезной в этом случае, если бы она была «выборочной» отменой; где пользователь может выбрать любую отдельную операцию / редактирование нескольких предыдущих изменений, выполненных до фиксации данных, и восстановить это одиночное редактирование в исходное состояние, вместо того чтобы иметь возможность только отменить последнюю операцию сначала, а затем вторую операцию до последней и т. д., как это было реализовано.
В любом случае, приложение, таким образом, содержит ненужную сложность и косвенность, что усложняет и замедляет процесс «взлома» и внесения изменений и улучшений в существующую функциональность, в данном случае практически без выгоды для реального мира. С тех пор как я унаследовал проект, я реализовал новые функции без отмены, и никто не жаловался.