Когда разрешить службам получать доступ к контроллеру IoC? - PullRequest
1 голос
/ 04 января 2012

В каких сценариях можно разрешить службам, созданным через IoC, иметь доступ обратно к контроллеру IoC для доступа к другим службам? Мне кажется, что краткий ответ никогда не бывает, но есть ли ситуации, в которых все в порядке или даже в которых это имеет смысл?

Ответы [ 2 ]

6 голосов
/ 04 января 2012

Я думаю, что ответ «никогда», поскольку звучит так, как будто вы описываете сервисный локатор, , который является антишаблоном

0 голосов
/ 04 января 2012

Об этом довольно хорошо написана статья Мартина Фаулера:

http://martinfowler.com/articles/injection.html#UsingAServiceLocator

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

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