.NET / [Перевод] Автоматизация Undo/Redo функциональности с помощью .NET Generics
Перевод статьи Automating Undo/Redo with .NET Generics Сергея Архипенко.
Введение
Эта статья описывает библиотеку, которая предоставляет undo/redo функциональность для каждого действия в вашем приложении. Вы можете использовать сложные структуры данных и сложные алгоритмы не задумываясь о том, как они будут переведены в предыдущее состояния по запросу пользователя или в результате возникновения ошибки.
Предпосылки
Если вы когда-нибудь разрабатывали графический редактор или дизайнер для сложных данных, вы сталкивались с трудоёмкой задачей реализации undo/redo функциональности, которая бы поддерживалась во всём приложении. Реализация парных Do и Undo методов для каждой операции скучный и подверженный ошибкам процесс, когда вы разрабытываете что-либо более серьёзное, чем калькулятор. В результате моих экспериментов я нашёл способ сделать поддержку undo/redo прозрачной для бизнес логики. Чтобы этого добиться, мы будем использовать магию generics.
Этот проект опубликован на CodePlex, чтобы каждый мог его использовать или внести свой вклад.
AD: