Возможно, название очень плохо названо, но в любом случае ...
Я использую шаблон команды для иерархического набора данных. Поэтому в основном мне нужен метод, который возвращает объект, который описывает изменения, которые будут сделаны без фактического изменения данных. Так, например:
Объект 1 -> Объект 2 -> Объект 3
Если я переместлю объект 1, это вызовет изменение в объекте 2, что приведет к изменению в объекте 3, поскольку они зависят друг от друга. Итак ... Мне нужен метод для рекурсивного прохождения иерархической коллекции и сбора изменений, необходимых для перемещения Объекта 1 без фактического изменения коллекции. На полпути через рекурсию было бы неплохо иметь возможность использовать что-то вроде Object1.Location, но оно уже может быть изменено, поэтому я не могу надежно его использовать.
Я чувствую, что существует множество алгоритмов и таких, которые должны выполнять этот тип модификации "на месте". Как майор, не относящийся к CS, я многому не научился такого рода вещам, поэтому я даже не знаю, какие условия поиска искать, чтобы найти «решение». Я помещаю решение в кавычки, потому что я понимаю, что, вероятно, нет прямого решения для моей проблемы, но я просто ищу некоторые хорошие рекомендации / примеры того, как это делается, чтобы заставить мой мозг крутиться.
Может ли кто-нибудь привести некоторые реальные примеры такого рода дел? Заранее спасибо.