Модель-Вид-Контроллер: когда контроллер должен определять изменения вида? - PullRequest
3 голосов
/ 04 мая 2009

Model-View-Controller, по-видимому, допускает два вида изменений в представлении:

  1. Всякий раз, когда модель изменяется, представление получает уведомление об изменении, чтобы оно могло соответствующим образом обновить свое визуальное представление.
  2. Контроллеру предоставляется прямой доступ к API представления для целей «Выбор представления».

Что такое «Выбор представления», и при каких обстоятельствах контроллер должен вносить изменения в представление, а не в то, чтобы представление вносило свои изменения, основываясь только на модели?

Ответы [ 2 ]

0 голосов
/ 25 ноября 2012

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

0 голосов
/ 20 мая 2012

Вот статья, которая может оказаться вам полезной.

Модифицированный шаблон MVC

Авторы представили MVC-поток, в котором Модель отправляет уведомления в Controller (не View, как в традиционном способе). Следовательно, контроллер обеспечивает передачу данных между объектами модели и представления в обоих направлениях. Как они сказали

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

... что является ответом на ваш вопрос о том, что такое View Selection. По сути, приложение имеет ряд представлений, которые связаны или обновляются в соответствии с одним изменением в модели. И Контроллер решит, какой набор видов необходимо обновить и / совместно использовать для выполнения работы (недостаточно информации из одного вида)

...