2011-01-06 3 views
6

В приложении wpf, на что возлагается функция viewmodel? может ли он управлять всем или представлять только представление и отправлять сообщения/события на бизнес-уровень и получать от него информацию?Должна ли модель представления содержать логику?

+1

Да - http://stackoverflow.com/questions/1405739/mvvm-tutorial-from-start-to-finish – Josh

ответ

8

Короткий ответ, да.

Более длинный ответ ...

Основными целями-View-ViewModel модели (MVVM) образца:

  1. Разрешение модульное тестирование вашего зрения логики. Это модульные тесты, применяемые к слою ViewModel, который выполняется без связанного с ним вида.
  2. Облегчите рабочий процесс разработчика-разработчика, минимизируя количество кода, связанного с вашими файлами XAML.

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

Теперь, размышляя о том, где вы находите свою бизнес-логику. Если вы разместили его в своей модели ViewModel, есть # 1 & # 2, все еще действительны? Да. Если вы разместите его на отдельном слое, все еще остаются # 1 и # 2? Да.

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

Смежные вопросы