Что такое разворот в паттерне MVVM? - PullRequest
3 голосов
/ 26 февраля 2011

Когда дело доходит до шаблона MVC, я всегда думал, что контроллер в качестве опоры.То есть именно он получает все действия, которые пользователь желает выполнить, и затем решает, какую модель и представление использовать для выполнения запрошенного пользователем действия.(Мой опыт работы с MVC связан с Asp.net, и поэтому я думаю о том, как используются маршруты для выбора правильного контроллера, который затем загружает модель, а затем выбирает и создает соответствующее представление).

Есть ли точка вшаблон MVVM?Является ли представление тем, в котором пользователь взаимодействует с тем, что может привести к загрузке и представлению другой модели пользователю с использованием соответствующей виртуальной машины?

Кроме того, где логика, которая обычно находится в контроллере в MVC, находится в шаблоне MVVM?

Ответы [ 4 ]

4 голосов
/ 26 февраля 2011

MVVM более распределен, чем MVC.Представления и модели представлений обычно связаны во время разработки, что означает, что виртуальная машина не выполняет ту же функцию, что и контроллер MVC.Это скорее чистый координатор, чем контроллер - хорошая модель представления, как правило, имеет относительно небольшую логику принятия решений.

Вся идея MVVM состоит в том, чтобы изолировать графические элементы представления от его программных элементов.Это сходство с MVC действительно только поверхностно.В MVC контроллер выступает в роли руководителя, реального интеллекта, стоящего за приложением.В MVVM виртуальная машина действует только как программная абстракция представления, а интеллект распределяется по всему приложению.

Компоненты MVVM действуют совместно, распределенным образом, что приводит к устранению монолитной концентрации, которая пронизывает некоторыеMVC приложения.Требуется немного привыкнуть, но это работает очень хорошо.Думайте о приложении MVVM как о механических швейцарских часах - какова точка поворота часов?Там действительно нет ни одного.Часы - это набор автономных компонентов, которые работают вместе для выполнения задачи.На самом деле нет «точки опоры», чем руководит операция.

2 голосов
/ 26 февраля 2011

Я не думаю, что в MVVM есть эквивалентный стержень. Тем не менее, я полагаю, вид мог бы выбрать свою виртуальную машину. В целях тестирования вы можете использовать виртуальную машину без представления. Логика управления находится во ViewModel.

Мне нравится думать о MVVM как M <-> VM <-> V

Хорошее описание виртуальной машины принадлежит Фаулеру, который называет ее Модель представления .

0 голосов
/ 27 февраля 2011

В MVVM ваше представление просто отображает ваши данные. Так же, как то, что делает представление в MVC. Так что ваша модель делает всю работу.

Если вы поместите кнопку на страницу asp.net и нажмете ее, это все равно, что поместить кнопку на страницу с подсветкой. Модель этого представления при использовании MVVM будет обрабатывать все действия, необходимые для манипулирования данными. Представление ответит (через связывание) соответственно. В MVC контроллер решает, какое действие профилировать на модели.

Таким образом, M & C в MVC "Модель представления" объединяется в один M в MV "Модель представления".

0 голосов
/ 26 февраля 2011

Я думаю, что в MVVM это было бы мнение.Представление отвечает на действия пользователя, а затем решает, как реагировать.Он будет вызывать один метод на виртуальной машине или другой на основе действий пользователя.Затем VM выполняет действие.

Я думаю, что вы можете также разделить MVVM на две разновидности;один с богатой моделью, другой с анемичной моделью. Эта ссылка о платформе Csla содержит некоторые обсуждения того, что дает «богатая» модель по сравнению с анемичной.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...