Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
от 5 курса и руслана.doc
Скачиваний:
3
Добавлен:
22.11.2019
Размер:
533.5 Кб
Скачать

44 Шаблоны проектирования пользовательского интерфейса. Model-View-Presenter

Model View Presenter — шаблон проектирования, который может считаться производным от MVC.

Model View Presenter — шаблон проектирования пользовательского интерфейса, который был разработан для облегчения автоматического модульного тестирования и отделения логики от отображения.

View определяется как интерфейс, который Presenter будет использовать для получения и установки данных модели. Реализация View будет содержать ссылку на класс Presenter’a и предоставлять Presenter’у ссылку на себя (Формально параметром конструктора Presenter’a является интерфейс View, в то время, как в конструктор передается конкретная реализация View). Когда вызывается событие View, оно вызывает конкретный метод Presenter’а который не имеет параметров и не имеет возвращаемого значения. Затем Presenter получает данные из View, через интерфейс. Затем Presenter вызывает методы модели, и устанавливает данные из модели во View через интерфейс.

С точки зрения многоуровневой модели приложений в ООП Presenter может рассматриваться как уровень приложения, так же как и самостоятельный уровень между уровнем приложения и уровнем пользовательского интерфейса.

45 Шаблоны проектирования пользовательского интерфейса. Model-View-ViewModel

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

Назначение

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

Использование

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

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

Описание

Паттерн MVVM делится на три части:

Модель (Model), так же, как в классическом паттерне MVC, Модель представляет собой фундаментальные данные, необходимые для работы приложения.

Вид/Представление (View) так же, как в классическом паттерне MVC, Вид — это графический интерфейс, то есть окно, кнопки и.т.п.

Модель вида (ViewModel, что означает «Model of View») является с одной стороны абстракцией Вида, а с другой предоставляет обертку данных из Модели, которые подлежат связыванию. То есть она содержит Модель, которая преобразована к Виду, а так же содержит в себе команды, которыми может пользоваться Вид, чтобы влиять на Модель.