Жизненный цикл модели
Как только создается или повторно инициализируется новая модель после запуска сервера, она проходит определенный цикл:
- Если модель абсолютная, ее источник данных - это сам контекст модели.
- Если модель относительная, сервер рассчитывает ее выражение пригодности для каждого контекста в системе, чтобы определить, "совместим" ли он с моделью.
- Если модель инстанцируемая, сервер рассчитывает ее выражение пригодности для каждого контекста в системе и добавляет дочерний контейнер для моделей этого типа в каждый контекст, для которого она пригодна. Эти контейнеры содержат экземпляры модели.
- Во-вторых, модель добавляет определения ее переменных, функций и событий к каждому пригодному контексту:
- Контекст самой абсолютной модели.
- Все контексты, для которых пригодна относительная модель.
- Все экземпляры инстанцируемой модели, которые уже определены в контейнерах, найденных на первом этапе.
- В-третьих, модель также добавляет функции, отсылая наборы правил модели ко всем пригодным контекстам.
- В-четвертых, модель инициализирует активаторы ее привязок, чтобы события и изменения в контекстах источника вызывали обработку привязок модели.
Нормальное функционирование модели
Как только заканчивается первичный запуск, модель переключается на ждущий режим. Ее последующие действия:
- Периодические привязки модели обрабатываются согласно графику, заставляя модель обрабатывать соответствующие привязки
- Некоторые события по обновлению значения переменной контекста сервера также вызывают активацию определенных привязок модели
- Другие компоненты системы читают/записывают свойства модели и выполняют ее функцию