Просьба описать с помощью простого примера различия между MVP-пассивным представлением и контроллером MVP-Supervising. Было бы лучше показать, как привязаны данные с контролем, а вход проверяется с использованием обоих методов mvp - контроллера Passive View и Supervising. Благодаря
Что такое контроллер MVP-Passive View и MVP-Supervising
Ответ 1
Разница заключается в обновлении слоев.
На странице Model-View-Presenter на MSDN:
Когда модель обновляется, представление также необходимо обновить, чтобы отразить изменения. Просмотр обновлений можно обрабатывать несколькими способами. Варианты Model-View-Presenter, контроллер пассивного просмотра и контроля, определяют различные подходы к реализации обновлений вида.
В Пассивном представлении ведущий обновляет представление, чтобы отразить изменения в модели. Взаимодействие с моделью осуществляется исключительно ведущим; представление не знает изменений в модели.
В Контролирующем контроллере, представление напрямую взаимодействует с моделью для выполнения простой привязки данных, которая может быть определена декларативно, без вмешательства ведущего. Ведущий обновляет модель; он управляет состоянием представления только в тех случаях, когда требуется сложная логика пользовательского интерфейса, которая не может быть указана декларативно. Примеры сложной логики пользовательского интерфейса могут включать в себя изменение цвета элемента управления или динамическое скрытие/отображение элементов управления. На рисунке 1 показан логический вид вариантов пассивного просмотра и диспетчерского контроля.
Решение использовать Пассивный просмотр или Контролирующий контроллер в первую очередь зависит от того, насколько вы можете тестировать ваше приложение. Если тестируемость является основной проблемой в вашем приложении, пассивный просмотр может быть более подходящим, потому что вы можете протестировать всю логику пользовательского интерфейса, проверив презентатора. С другой стороны, если вы предпочитаете простоту кода по полной проверке, Supervising Controller может быть лучшим вариантом, потому что для простых изменений пользовательского интерфейса вам не нужно включать код в презентаторе, который обновляет представление. При выборе между пассивным представлением и контрольным контроллером рассмотрите следующее:
- Оба варианта позволяют повысить возможность проверки вашей логики представления.
- Пассивное представление обычно обеспечивает большую поверхность тестирования, чем контрольный контроллер, потому что вся логика обновления представления помещается в презентаторе.
- Контролирующий контроллер обычно требует меньше кода, чем пассивный вид, потому что ведущий не выполняет простые обновления вида.
Дальнейшее чтение:
Пассивный вид:
http://martinfowler.com/eaaDev/PassiveScreen.html
http://codebetter.com/jeremymiller/2007/05/31/build-your-own-cab-part-4-the-passive-view/
Контролирующий контроллер: