Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
0
Добавлен:
27.11.2024
Размер:
1.37 Mб
Скачать

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