Жизненный цикл модели

Как только создается или повторно инициализируется новая модель после запуска сервера, она проходит определенный цикл:

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

Нормальное функционирование модели

Как только заканчивается первичный запуск, модель переключается на ждущий режим. Ее последующие действия:

  • Периодические привязки модели обрабатываются согласно графику, заставляя модель обрабатывать соответствующие привязки
  • Некоторые события по обновлению значения переменной контекста сервера также вызывают активацию определенных привязок модели
  • Другие компоненты системы читают/записывают свойства модели и выполняют ее функцию