В чем разница между контроллером в шаблоне MVC и презентатором в шаблоне MVP? Можете ли вы предоставить ссылки для понимания сущности и сценария использования для обоих из них?
В чем разница между контроллером в шаблоне MVC и презентатором в шаблоне MVP?
Ответ 1
В MVP Presenter предполагает функциональность "среднего человека" (которую играет контроллер приложений в MVC). Кроме того, представление отвечает за обработку событий пользовательского интерфейса (например, mouseDown, keyDown и т.д.), Которые раньше были заданием контроллера. В конце концов, модель становится строго Domain Model.
Говорит Wikipedia.
Вот более подробное объяснение различий между ними.
См. также Martin Fowler Пенсионная заметка для презентатора Model View Presenter.
Ответ 2
В MVC представление обновляется только моделью (путем прослушивания ее событий). Контроллер не обновляется. Это проблематично, когда вам нужно отформатировать данные модели для представления, а значит, и потребность в MVP.
В MVP-пассивном представлении представление обновляется только презентатором (свойства представления представлений). Ведущий прослушивает события на модели [изменяя данные, если требуется] до обновления представления.
В MVP-Supervising Controller представление обновляется либо моделью, либо ведущим. Если форматирование не требуется, представление обновляется через модель. Если требуется форматирование, он обновляется через презентатор.