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