Статья посвящена управлению зависимостями между компонентами в приложении, рассматриваются такие концепции как Dependency Injection, Investion of Control container, Service Locator. Рассматривается существующий подход к управлению зависимостями между компонентами в приложении, анализируются проблемы которые несет в себе этот подход. Далее, путем последовательных шагов делается попытка решить эти проблемы, в результате чего приходим к таким концепциям как Service Locator
, Dependency Injection
, Inversion of Control Container
.
Основной упор в статье делается на вопросы "Зачем?", "Почему?", а не "Как?". Обычно этим вопросам не уделяется должного внимания, и упор делается на детали реализации, однако понимание глубинных причин использования тех или иных вещей критично для их правильного и своевременного употребления.
Статья ориентирована на разработчиков, которые:
-
не слышали об
DI/IoC
и хотят понять зачем нужно использовать эти новинки, если и "так все хорошо". -
знают что это такое, но пока не использовали в реальных приложения, и хотели бы более глубже понять необходимость использования
DI/IoC
, и какие преимущества несет эта концепция. -
те кто, используют
DI/IoC
, но хотели бы лучше понять какие проблемы решаетDI/IoC
и какие benefits несет.
Содержание:
- Вопрос управления зависимостями между компонентами в приложении
- Классический подход к управлению зависимостями внутри компонент приложения
- Использование Service Locator
- Использование Dependency Injection / Inversion of control container
- Service Locator vs DI/IoC Container
- Реализации IoC container'ов
- Полезные ресурсы