Я думаю, что вы спрашиваете: «Как моя реализация MVVM должна обрабатывать задачи, связанные с GUI, которые не являются прямым результатом ввода пользователя?»(Дайте мне знать, если я вас неправильно истолковал.)
Задачи, которые вы описываете, скорее всего, координируются таймером.Если вы отметите тик таймера как «действие пользователя», то он на самом деле не отличается от традиционной модели командования.
Это означает, что модель представления будет управлять таймером и обновлять себя в ответ.Он может установить свойство, когда уведомление должно быть показано пользователю, и представление может реагировать на изменение этого свойства и отображать всплывающее окно.Важной концепцией является то, что модель представления по-прежнему отвечает за координацию поведения, и представление просто отражает текущее состояние модели представления.
(Почасовое обновление по электронной почте не связано с GUI, вЯ чувствую, что он не взаимодействует с пользователем; я исключил его из смеси.)
Что касается объектов, которые реализуют временное поведение, @epitka ударила по голове гвоздем, описав концепциюуслуга.Как правило, службы координируют поведение в нескольких хранилищах или других службах.Они представляют собой предметно-ориентированную логику, которую нельзя назначить какой-либо одной конкретной сущности.