Возможно, имелись в виду различия между шаблоном MVVM и более распространёнными подходами к разработке приложений, например MVC и событийно-ориентированной разработкой. 4
MVVM позволяет разделить приложение на три функциональные части: 4
- Model — основная логика программы (работа с данными, вычисления, запросы и так далее). 4
- View — вид или представление (пользовательский интерфейс). 4
- ViewModel — модель представления, которая служит прослойкой между View и Model. 4
Такое разделение позволяет ускорить разработку и поддерживаемость программы — можно менять один компонент, не затрагивая код другого. 4
Некоторые отличия MVVM от других шаблонов:
- Использование инфраструктуры привязки данных. 2 За счёт привязки свойств представления к модели представления получается слабое связывание этих компонентов, что освобождает разработчика от необходимости писать код, непосредственно обновляющий представление. 2
- Взаимодействие ViewModel и View. 3 ViewModel не может общаться со View напрямую. 3 Вместо этого она представляет легко связываемые свойства и методы в виде команд. 3 View может привязываться к этим свойствам, чтобы получать информацию из ViewModel и вызывать на ней команды (методы). 3
- Упрощение работы с проектировщиками визуальных форм. 2 Так как представление — не более чем необязательный потребитель модели представления, нетрудно убрать одно представление и заменить его для отображения модели представления новым. 2
MVVM хорошо приспособлен для платформы WPF, потому что сам паттерн был придуман компанией Microsoft для разработки приложений с графическим интерфейсом под Windows. 4