В приложении wpf, на что возлагается функция viewmodel? может ли он управлять всем или представлять только представление и отправлять сообщения/события на бизнес-уровень и получать от него информацию?Должна ли модель представления содержать логику?
ответ
Короткий ответ, да.
Более длинный ответ ...
Основными целями-View-ViewModel модели (MVVM) образца:
- Разрешение модульное тестирование вашего зрения логики. Это модульные тесты, применяемые к слою ViewModel, который выполняется без связанного с ним вида.
- Облегчите рабочий процесс разработчика-разработчика, минимизируя количество кода, связанного с вашими файлами XAML.
Шаблон MVVM также обеспечивает разделение проблем между логикой представления и бизнес-логикой так же, как и MVC и их шаблон пользовательского интерфейса. Тем не менее, 2 пункта выше - это то, что действительно определяет шаблон MVVM.
Теперь, размышляя о том, где вы находите свою бизнес-логику. Если вы разместили его в своей модели ViewModel, есть # 1 & # 2, все еще действительны? Да. Если вы разместите его на отдельном слое, все еще остаются # 1 и # 2? Да.
Следовательно, в обоих случаях вы все еще достигаете двух главных целей MVVM. Какой маршрут вы действительно используете, зависит от сложности вашего приложения и количества разработчиков, работающих на нем. Поскольку оба эти фактора увеличиваются, вам будет полезно иметь 3 слоя ... или больше!
- 1. Должна ли модель просмотра содержать регистратор?
- 2. Должны ли представления содержать ссылки на модели?
- 3. Может ли модель содержать ссылку на репозиторий?
- 4. Если модель должна содержать всю бизнес-логику, каков наилучший способ вызова методов класса в модели? (больше внутри)
- 5. Строка должна содержать 2 слова
- 6. Активная запись должна иметь логику домена?
- 7. Может ли амперсанд-модель содержать амперсанд-коллекцию?
- 8. Что должна содержать переменная path?
- 9. Должен ли уровень доступа к данным содержать бизнес-логику?
- 10. Как удалить логику из представления
- 11. Должна ли модель знать свою коллекцию?
- 12. Должна ли сама модель выполнять некоторые вычисления?
- 13. Должен ли я иметь эту логику в модели представления?
- 14. Regex - должна содержать номер и не должен содержать специальный символ
- 15. Должна ли модель данных Mapper ссылаться на модель домена?
- 16. Где должна кэшировать логику в приложении потока?
- 17. PHP: должна ли модель MVC быть реализована как singleton?
- 18. MVC: Может ли модель наследовать объект BLL или содержать его?
- 19. Какая должна быть «модель»?
- 20. Как должна отображаться модель?
- 21. Спецификация HAL. Должна ли ссылка self содержать параметр запроса?
- 22. Должна ли моя рекурсивная таблица категорий содержать мои продукты?
- 23. Должна ли база данных содержать некоторые бизнес-логики?
- 24. В каком слое должна идти модель домена?
- 25. Должна ли модель или контроллер отвечать за отправку писем?
- 26. Где должна существовать логика кэширования, модель или модель просмотра
- 27. Как должна выглядеть моя модель?
- 28. Должна ли модель для представления представлять собой совокупность со своим собственным хранилищем?
- 29. C# строка, которая должна содержать цитату «
- 30. Карта, которая должна содержать все возможные ключи?
Да - http://stackoverflow.com/questions/1405739/mvvm-tutorial-from-start-to-finish – Josh