Служба общих данных между представлениями в MVVM - глобальная или конструктор? - PullRequest
0 голосов
/ 17 декабря 2010

Если у меня есть данные / веб-сервис, для которого многопользовательским моделям необходим доступ к тому, что является предпочтительным способом MVVM?

Есть ли у меня глобальный статический сервис или я передаю экземпляр своего сервиса всем моим моделям представлений?Лично я не вижу преимущества одного подхода перед другим.

Ответы [ 2 ]

2 голосов
/ 17 декабря 2010

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

Создание класса для интерфейса также определяет контракт для вашего класса.По сути, вы говорите: «ClassA требует, чтобы IServiceA и IServiceB работали правильно».С глобальным статическим состоянием такого контракта нет.

0 голосов
/ 17 декабря 2010

В дополнение к использованию Dependency Injection также следует рассмотреть подход ServiceLocater, в котором каждый ViewModel, если бы не передавал экземпляр службы, вызывал бы ServiceLocator для получения экземпляра зарегистрированной службы во время выполнения.

Фаулер на DI и ServiceLocator

MSDN на ServiceLocator

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