Что такое интерфейс IServiceLocator? - PullRequest
7 голосов
/ 12 апреля 2010

Насколько я понимаю, IServiceLocator - это интерфейс для абстрагирования реального контейнера IoC? Я спрашиваю относительно Prism, где я пытаюсь заменить Unity на Prism , и я вижу классы Prism, полагающиеся на IServiceLocator. Может ли кто-нибудь уточнить роль интерфейса и когда он используется?

А также; Что такое Common Service Locator , и будет ли это полезно при работе с IServiceLocator?

1 Ответ

12 голосов
/ 12 апреля 2010

IServiceLocator - это абстракция локатора службы. Контейнеры IoC являются своего рода надмножествами сервисных локаторов, поэтому они могут быть представлены IServiceLocator. Однако шаблон локатора сервиса более навязчив, чем шаблон внедрения чистой зависимости, поэтому вы должны стараться отдавать предпочтение последнему, когда это возможно.

CommonServiceLocator предоставляет интерфейс IServiceLocator и абстрактную реализацию этого интерфейса для определения общего поведения и помогает контейнерам IoC определить свой адаптер IServiceLocator (каждый основной контейнер IoC предоставляет такой адаптер).

Смотри также:

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