Контроллер модельного вида - PullRequest
1 голос
/ 08 июня 2009

Я реализовал шаблон Model-View-Controller в своем приложении. Это не веб-приложение, но MVC подходит для него.

все обновления модели теперь направляются через контроллер. Даже обновления из представления также отправляются на контроллер, и они будут направлены на модель. (У меня есть классы между моделью и контроллером для принятия решения в соответствии с режимом приложения). В большинстве моделей я вижу вид, который напрямую обновляет модель. Это допустимо в контексте этого шаблона?

Ответы [ 2 ]

3 голосов
/ 08 июня 2009

Представление может быть наблюдателем модели.
Модель может иметь доступ к представлению через интерфейс наблюдателя. Когда модель изменяется, она может уведомить представление или контроллер. Это паттерн Observer, который отделяет модель от вида и контроллера.

Model-View-Controller

...

Пассивная модель используется, когда один контроллер манипулирует моделью исключительно. Контроллер модифицирует модель, а затем информирует мнение что модель изменилась и должна быть обновленным (см. рисунок 2). Модель в этом сценарии полностью независимо от точки зрения и контроллер, что означает, что есть нет средств для модели, чтобы сообщить изменения в его состоянии.
...

Активная модель используется, когда модель меняет состояние без участие диспетчера. Это может случается, когда другие источники меняются данные и изменения должны быть отражено во взглядах. Рассмотрим биржевой дисплей. Вы получите данные о запасах из внешнего источника и хотите обновить представления (например, полоса тикера и окно оповещения) когда данные об акциях меняются. Так как только модель обнаруживает изменения в своем внутреннее состояние, когда они возникают, модель должна уведомить мнение, чтобы обновить дисплей.
...

2 голосов
/ 08 июня 2009

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

...