О моделях представления и интерфейсах - PullRequest
8 голосов
/ 17 марта 2011

Я разрабатываю приложение WPF Prism, и все работает нормально. Все мои модели просмотра имеют интерфейсы, которые вводятся MEF.

Однако я не очень понимаю преимущества интерфейсов для моделей представлений. В конце концов, представление связано с его моделью представления, поэтому я думаю, что никогда не будет других реализаций.

На самом деле, у меня также есть интерфейсы для моих представлений. Кажется, это тоже перебор?

Таким образом, мой вопрос: не могу ли я просто удалить все интерфейсы просмотра и просмотра моделей и внедрить представления и модели просмотра напрямую? Есть ли причина сохранять интерфейсы для представлений и моделей представлений?

Thx, L

Ответы [ 3 ]

8 голосов
/ 17 марта 2011

Это перебор.Я понимаю, что вы можете высмеивать ваши ViewModels, но я думаю, что более важно быть практичным.Кроме того, зачем вам даже издеваться над вашими моделями ViewModels?Любая логика, которую нужно смоделировать, должна быть помещена в класс обслуживания IMHO.

4 голосов
/ 17 марта 2011

Взаимодействие с вашими VieWModels дает вам преимущество в том, что они насмехаются над ними в тесте, а взаимодействие с вашими представлениями выглядит как какое-то избыточное убийство.Вы не поменяете местами ваши взгляды, и тестирование пользовательского интерфейса может быть выполнено на макетах вашей ViewModel, так что вам не понадобится интерфейс, я думаю.

2 голосов
/ 17 марта 2011

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

Шаблон MVVM облегчает модульное тестирование классов, поскольку он отделяет данные и управление от уровня пользовательского интерфейса (для которого сложнее писать модульные тесты). Лично я не пишу интерфейсы для своих представлений.

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