Руководство по шаблону дизайна репозитория - PullRequest
3 голосов
/ 11 марта 2011

Допустим, у вас есть MVVM CRM-приложение.

У вас есть несколько пользовательских объектов в памяти через репозиторий.

Что будет подходящим местомобрабатывать задачи, которые не связаны с традиционными задачами MVVM из графического интерфейса?

Например, скажем, каждые несколько минут вы хотите проверить, является ли их адрес действительным, и всплыть уведомление, если это не так.Или вы хотите отправить почасовое обновление по электронной почте.Или вы хотите, чтобы всплыло окно, чтобы напомнить вам позвонить клиенту в определенное время.

Куда ведет эта логика?Это не GUI / ориентированный на действие, и это не логика, которая была бы уместна для репозитория, я думаю.

1 Ответ

1 голос
/ 12 марта 2011

Я думаю, что вы спрашиваете: «Как моя реализация MVVM должна обрабатывать задачи, связанные с GUI, которые не являются прямым результатом ввода пользователя?»(Дайте мне знать, если я вас неправильно истолковал.)

Задачи, которые вы описываете, скорее всего, координируются таймером.Если вы отметите тик таймера как «действие пользователя», то он на самом деле не отличается от традиционной модели командования.

Это означает, что модель представления будет управлять таймером и обновлять себя в ответ.Он может установить свойство, когда уведомление должно быть показано пользователю, и представление может реагировать на изменение этого свойства и отображать всплывающее окно.Важной концепцией является то, что модель представления по-прежнему отвечает за координацию поведения, и представление просто отражает текущее состояние модели представления.

(Почасовое обновление по электронной почте не связано с GUI, вЯ чувствую, что он не взаимодействует с пользователем; я исключил его из смеси.)

Что касается объектов, которые реализуют временное поведение, @epitka ударила по голове гвоздем, описав концепциюуслуга.Как правило, службы координируют поведение в нескольких хранилищах или других службах.Они представляют собой предметно-ориентированную логику, которую нельзя назначить какой-либо одной конкретной сущности.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...