
3к6с Современные технологии интернет-программирования / Лекции / 3 Паттерны проектирования MVC, MVP, MVVM
.pdf
MVP
Model-View-Presenter (MVP) — шаблон проектирования, производный от MVC, который
используется в основном для построения пользовательского интерфейса. Шаблон был
разработан в начале 90-х годов в проекте
Taligent и позднее перенесен в JAVA Mike Potel.
В 2006 году Microsoft начала включать MVP в
свои примеры и документацию для
программирования UI.
21

MVP
Контроллер (Presenter) дает знать представлению об изменениях. У каждого представления будут интерфейсы с определенными наборами методов и свойств, необходимых презентеру, презентер в свою очередь инициализируется с данным интерфейсом, подписывается на события представления и по необходимости подсовывает
данные. |
22 |
|

MVP
Примеры реализации MVP:
Google Web Toolkit;
ASP.NET Web Forms Model-View-Presenter
(MVP);
Java Swing/AWT;
Silverlight.
23

MVP
Отличия от MVC:
Более слабая связь с моделью. Presenter
отвечает за связывание модели и представления.
Более легкая организация тестирования, т.к. взаимодействие с представлением идет
через интерфейс.
24

MVP
Прежде всего, можно заметить, что, количество
связей между сущностями уменьшилось, как правило, в MVP Модель не общается с
Представлением даже опосредовано, через механизм оповещений, но это не обязательное
условие, более глубокие отличия лежат как раз
в области Presenter-а.
25

MVP
Как уже упоминалось выше, в MVC Модель, на самом деле, является медиатором, между
Контроллером/Представлением и реальной
моделью домена (Domain Model) приложения. В MVP-же, что видно на схеме, такого медиатора
нет и его функции берет на себя Presenter, таким образом Presenter, в отличие от
Контроллера, общается непосредственно с
моделью приложения, а не с неким
промежуточным звеном.
26

MVP
Это позволяет, в случае необходимости, общаться Presenter-у с Представлениями,
минуя Модель приложения и событийный механизм с этим связанный, так как Presenter в
отличии от Контроллера, обладает
необходимыми знаниями о Представлениях, а так же удаляет лишнюю логику обработки
событий от Модели из Представления.
27

MVVM
Шаблон Model-View-View-Model (MVVM) —
применяется при проектировании архитектуры
приложения. Первоначально был представлен сообществу Джоном Госсманом (John Gossman)
в 2005 году как модификация шаблона
Presentation Model. MVVM ориентирован на современные платформы разработки, такие как
Windows Presentation Foundation, Silverlight от
компании Microsoft, ZK framework.
28

MVVM
MVVM используется для разделения модели и её представления, что необходимо для
изменения их отдельно друг от друга.
Например, разработчик задает логику работы с данными, а дизайнер соответственно работает
с пользовательским интерфейсом.
29

MVVM
В шаблонах проектирования MVC/MVP изменения в пользовательском интерфейсе не влияют непосредственно на Mодель, а предварительно идут через Контроллер (англ. Controller) или Presenter. В таких технологиях как WPF и Silverlight есть концепция «связывания данных», позволяющая связывать данные с визуальными элементами в обе стороны. Следовательно, при использовании этого приема применение модели MVC становится крайне неудобным из-за того, что привязка данных к представлению напрямую не
укладывается в концепцию MVC/MVP. |
30 |
|