У меня есть несколько структур для поддержки в моем приложении. Все ссылки на одни и те же записи, и один из них можно считать «мастером» в том, что он отражает фактические отношения, хранящиеся в файлах на диске. Другие структуры используются для «вызова» элементов основного дизайна для заказов на покупку и работу. Я изо всех сил пытаюсь найти шаблон, который соответствующим образом связан с изменениями основных данных.Синхронизация двух отдельных структур с теми же основными данными
В качестве примера, следующие деревья могут относиться к тем же данным:
A
|_
B
|_
C
|_
D
|_
E
|_
B
|_
C
|_
D
A
|_
B
E
C
|_
D
A
|_
B
C
D
E
Эти вторичные структуры следуют внутренние правила, но их общая структура, как правило, определяется пользователем. Во всех случаях (включая мастера) любой элемент может использоваться в нескольких местах и в нескольких деревьях. Когда я добавляю ребенка к любому элементу в дереве, я хочу либо автоматически построить вторичную структуру для каждого экземпляра элемента «master», либо, по крайней мере, рекламировать ситуацию пользователю и разрешить им вручную генерировать данные, необходимые для вторичные деревья.
Есть ли какой-либо шаблон, который может применяться к этой ситуации? Я рассматривал это как проблему с представлением, но это оказывается более сложным, чем когда вы смотрите на начальное генерирование данных.
Привет, Prachi. Я ищу предложения о том, как обрабатывать синхронизацию структур, а не от базовой структуры - мне приходится использовать древовидные структуры для всех задействованных данных. Спасибо за ваш ответ. –
Шина событий может быть полезна там, где каждая копия мастера может зарегистрироваться как издатель. Когда копия обновляется, она позволяет контроллеру шины знать об обновлении. Контроллер шины может отправлять события мастеру и другим копиям об обновлении. – Prachi