Подтвердить что ты не робот

В чем разница между контроллером в шаблоне MVC и презентатором в шаблоне MVP?

В чем разница между контроллером в шаблоне MVC и презентатором в шаблоне MVP? Можете ли вы предоставить ссылки для понимания сущности и сценария использования для обоих из них?

4b9b3361

Ответ 1

В MVP Presenter предполагает функциональность "среднего человека" (которую играет контроллер приложений в MVC). Кроме того, представление отвечает за обработку событий пользовательского интерфейса (например, mouseDown, keyDown и т.д.), Которые раньше были заданием контроллера. В конце концов, модель становится строго Domain Model.

Говорит Wikipedia.

Вот более подробное объяснение различий между ними.

См. также Martin Fowler Пенсионная заметка для презентатора Model View Presenter.

Ответ 2

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

В MVP-пассивном представлении представление обновляется только презентатором (свойства представления представлений). Ведущий прослушивает события на модели [изменяя данные, если требуется] до обновления представления.

В MVP-Supervising Controller представление обновляется либо моделью, либо ведущим. Если форматирование не требуется, представление обновляется через модель. Если требуется форматирование, он обновляется через презентатор.