Должна ли модель представления содержать логику? - PullRequest
7 голосов
/ 06 января 2011

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

1 Ответ

10 голосов
/ 06 января 2011

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

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

Основные цели шаблона Model-View-ViewModel (MVVM):

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

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

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

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

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