Model-View-ViewModel

Материал из Википедии — свободной энциклопедии
Это старая версия этой страницы, сохранённая Greazy (обсуждение | вклад) в 20:29, 13 ноября 2010 ( Новая страница: «Паттерн '''Model-View-ViewModel''' - это паттерн, применяющийся при проектировании архитекту...»). Она может серьёзно отличаться от текущей версии.
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)
Перейти к навигации Перейти к поиску

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

Назначение

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

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

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

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

Описание

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

  • Модель (Model), так же, как в классическом паттерне MVC, Модель представляет собой фундаментальные данные, необходимые для работы приложения.
  • Вид/Представление (View) так же, как в классическом паттерне MVC, Вид – это графический интерфейс, то есть окно, кнопки и.т.п.
  • Модель вида (ViewModel, что означает "Model of View"[1]) является с одной стороны абстракцией Вида, а с другой предоставляет обертку данных из Модели, которые подлежат связыванию. То есть она содержит Модель, которая преобразована к Виду, а так же содержит в себе команды, которыми может пользоваться Вид, чтобы влиять на Модель.

Ссылки

  1. 1 2 Introduction to Model/View/ViewModel pattern for building WPF apps