Может кто-нибудь объяснить как можно проще, что такое шаблон представления представления модели? В чем разница с Model View Controller? Что лучше или для какой цели?
Что такое презентатор модели?
Ответ 1
У Мартина Фаулера есть страница о шаблонах дизайна пользовательского интерфейса, в которой он определяет, а затем рассказывает о MVC, MVP и других шаблонах.
http://martinfowler.com/eaaDev/uiArchs.html
Чтобы обобщить различия, контроллеры в MVC имеют больший контроль над пользовательским интерфейсом и обрабатывают события, а ведущий в MVP более пассивен и просто представляет информацию через пользовательский интерфейс.
В общем, нет большой разницы, и часто линия между ними размыта.
Ответ 2
Модель View Presenter и Model View Controller обе пытаются решить ту же проблему "разделение проблем".
Основное отличие, которое вы обнаружите, заключается в том, что Model View Controller (MVC) часто реализуется с некоторой связью между представлением и некоторой моделью какого-либо типа - таким образом, данное представление специально предназначено для обеспечения визуализации данного объекта ( модель).
В шаблоне Presenter Model View вы обычно обнаруживаете, что Presenter заботится о работе с моделью и решает, какая информация из нее понадобится, чтобы сформировать какую-то визуализацию.
На этой диаграмме стрелки представляют зависимости:
Как правило, вы слышите, что обсуждение шаблонов возникает при обсуждении структуры ASP.NET MVC и встречается информация о шаблоне MVP и его реализации в ASP.NET WebForms. В моем опыте, как полагают, считается, что WebForms сам по себе является структурой шаблонов MVP - это неверно. Однако WebForms упрощает реализацию шаблона MVP - лучшим ресурсом для этого является исследование программного обеспечения веб-клиента Factory из команды "Шаблоны и практики":
Сайт CodePlex: http://www.codeplex.com/websf
Отличный скринкаст, охватывающий тему: http://www.pnpguidance.net/Screencast/MVPBundleScreencastWCSFModelViewPresenterDesignPattern.aspx
Ответ 3
Фаулер разделяет MVP на 2 шаблона: надзор за презентатором и пассивным представлением.
Авиад Эзра имеет хорошую статью по этой теме http://aviadezra.blogspot.com/2008/10/model-view-presenter-design-pattern.html.
Я думаю, что MVP лучше подходит для рабочего стола, а MVC - для веб-приложения, потому что на рабочем столе у модели есть возможность поднять событие
Ответ 4
Дельфин Smalltalk имел обыкновение иметь реализацию MVC, но затем они перенесли в MVP.
Здесь технический документ, который описывает, что они сделали и почему.
Система IBM Taligent также использовала MVP - они описывают, что и почему здесь.