Давайте рассмотрим следующий пример: у меня есть объект «Document», который содержит коллекцию объектов «Person», а каждый объект «Person» имеет коллекцию объектов «Address». Когда один из объектов «Адрес» изменяется, мне нужно вызвать метод на стороне сервера, чтобы вычислить оптимальный путь между всеми адресами человека (чей «Адрес» был изменен) и обновить пользовательский интерфейс. Мне нужно знать, что один из адресов был изменен и человек, адрес которого был изменен.
Единственное решение, которое у меня есть, - это реализация какого-либо рода событий. Когда объект «Адрес» изменяется, он уведомляет родителя (объект «Человек») об изменении, «Человек» уведомляет «Документ». Теперь мы можем добавить слушателя в класс «Document» и выполнить необходимые действия. Недостаток этого подхода - мне приходится управлять «родительскими» ссылками для всех объектов в иерархии. Кто-нибудь может прокомментировать это решение? это хорошо? А может я тут что-то не так делаю?
Спасибо.