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

Что такое презентатор модели?

Может кто-нибудь объяснить как можно проще, что такое шаблон представления представления модели? В чем разница с Model View Controller? Что лучше или для какой цели?

4b9b3361

Ответ 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 заботится о работе с моделью и решает, какая информация из нее понадобится, чтобы сформировать какую-то визуализацию.

На этой диаграмме стрелки представляют зависимости:

MVC and MVP dependencies

Как правило, вы слышите, что обсуждение шаблонов возникает при обсуждении структуры 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 - они описывают, что и почему здесь.