Зачем мне нужен MVVM для WPF / Silverlight, есть ли веская причина, по которой нельзя использовать MVC? - PullRequest
4 голосов
/ 20 июля 2010

Может быть, я сумасшедший, но я получаю MVC.Это имеет смысл.MVVM, кажется, способ сделать MVC сложнее, я не прав (если так, почему?)?

Ответы [ 3 ]

2 голосов
/ 20 июля 2010

Вам не нужно нужно MVVM - это просто хорошо работает.

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

Преимущество MVVM в том, что он очень тесно связан с фундаментальными принципами проектирования, заложенными в WPF и Silverlight. Основная идея MVVM очень похожа на дизайн WPF и Silverlight на довольно низком уровне - например, посмотрите, как шаблонизатор работает с пользовательскими элементами управления, и сравните его с разделением View / ViewModel, и есть много корреляций это можно нарисовать.

2 голосов
/ 20 июля 2010

Я думаю, что если вы получаете MVC, то MVVM действительно такой же - с 1 дополнительной частью (ViewModel).Причина, по которой MVVM более полезен, на мой взгляд, связана с новыми процессами DataBinding.ViewModel предоставляет полезную абстракцию и ясность о том, что связано с данными, и как эта привязка представлена ​​или преобразована.Это все, что у меня на уме.

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

Думайте о ViewModel как о коде для вашего View, о View как о конструкторе вашего View, о модели как о модели и о системе уведомлений / сообщений в качестве контроллера, и у нас есть действительно эквивалентpattern.

Мне тоже было трудно понять (я тоже пришел из паттерна MVC, но теперь люблю паттерн MVVM).

2 голосов
/ 20 июля 2010

Может быть это полезно.

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