Есть подобное для паттерна Memento? Есть десятки классов с общим предком, и у каждого класса десятки свойств. Экземпляры этих классов находятся в списках таким образом, что у каждого класса есть как минимум один список содержащий аналогичные классы с тем-же общим предком:
class MyClass
{
public List<MyClass> MyClasses;
}
И нужно следить за всем этим, а так-же делать отмену действий, возврат действий. Откат/восстановление изменений свойств или добавлений/удалений классов из списка.
Писать такое руками для каждого свойства/списка - очешуеть. И как такое реализуют во всяких Autodesk'ах...