Understanding Dependency Injection
В настоящий момент изучаю сами знаете какой супергероический фреймворк))
Концептуально непонятно одна вещь: зачем нужно внедрение зависимостей?
Конечно сейчас кто-то упал со стула от моей вопиющей невежественности, но тем не менее. Из всего что я успел прочитать, DI упоминается чаще всего в связке с сервисами.
Например мне нужно использовать в моём контроллере некий самописный сервис myserv. Чтобы иметь его в списке аргументов функции инициализации контроллера я выполняю некий ритуал описанный в офф. доке и прочих разных мануалах, туториалах и статьях. Этот ритуал для меня ещё несколько мутноват отчасти как-раз из-за того, что непонятна конечная цель.
Итак, пусть мой сервис myserv настраивает что-то на сервере используя xhr (ajax). Вместо использования DI я вполне могу объявить window.services и разместить в нём все необходимые мне сервисы, в том числе и myserv.
Это единственная вещь, которую я должен сделать дополнительно к написанию самого сервиса, т.к. она позволит избежать конфликта имён в глобальной области видимости. Почему я должен делать что-то ещё?
Что могло бы обосновать использования DI:
1. Ленивая подгрузка сервисов. А она есть в angular?
2. Встроенные сервисы не будут доступны в коде новых сервисов если не оформить их как положен))
3. Я вообще всё не так понял
И пожалуй всё. Больше не вижу причин.
Буду признателен если уже использующие angular прояснили эти моменты, а то вкуривать во всякие магические ритуалы не видя цели очень скушно))
|