Относительно шаблона сервисного локатора - PullRequest
6 голосов
/ 14 сентября 2011

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

  1. Должен ли SL управлять службой, которую он хранит?То есть, когда SL уничтожается, он также должен уничтожить сам сервис или он должен оставить это тому, кто зарегистрировал сервис?

  2. А как насчет внедрения зависимостей?Теперь, когда у меня есть SL, есть ли смысл передавать SL в качестве параметра или я должен получить к нему глобальный доступ?В конце концов, большая часть цели DI также покрывается SL, и я не хотел бы загромождать многие мои функции еще одним параметром .

1 Ответ

9 голосов
/ 14 сентября 2011

Вы могли бы подумать, что я написал эту статью (я не сделал), учитывая, как часто я на нее ссылаюсь:

Сервисный локатор - это анти-шаблон

Внедрение зависимостей делает ваши зависимости явными. Расположение службы скрывает их в реализации и создает жесткую зависимость от вашего локатора.

...