Сначала мотивация для этого вопроса: любой, кто использует постоянные структуры данных и графический интерфейс, сталкивается с этой проблемой. Итак, мои вопросы вроде: люди просто решают это на индивидуальной основе, или это их библиотеки, утилиты, фреймворки, что-то, что абстрагирует общий случай, чтобы сделать его проще.
Конкретный язык, на который я нацеливаюсь, - это Scala, но я думаю, что это общий вопрос, связанный с постоянными структурами данных.
Допустим, у вас есть большая структура данных, отображаемая в сложном графическом интерфейсе с деревьями, таблицами, таблицами свойств и т. Д. Различные действия пользователя или системы приводят к изменениям в структуре данных.
Существует ли общая стратегия обработки уведомлений, которая сообщает графическому интерфейсу о необходимости обновления?
Одна из интригующих идей с постоянными структурами данных заключается в том, что можно обрабатывать отмену / повтор, просто переключаясь между корнями. Это работает для данных, но существует ли общий механизм для информирования слушателей (например, графического интерфейса пользователя) об изменении, если нужно переключить корни?
Насколько я понимаю, это должно быть постепенно - мне нужно знать, что изменилось. Я не могу просто сказать все, чтобы сделать полное обновление графического интерфейса, так как это может быть очень дорого (и некоторые элементы управления не справляются с этим (или вообще) из-за поддержания состояния графического интерфейса).