Это - самое простое объяснение инжекционного впрыска зависимостей и зависимостей, которое я когда-либо видел:
Без инъекции зависимостей
- Потребности приложения Foo (например, контроллер), так что:
- Приложение создает Foo
- Прикладные вызовы Foo Foo нуждается в баре (например, службе), поэтому: Foo создает вызовы Bar Foo Bar Bar требует Bim ( сервис, репозиторий, ...), поэтому: Bar создает Bim Bar что-то делает
с Injection Dependency
- Приложению необходимо Foo, которому нужна панель, которая требует Bim, поэтому:
- Приложение создает Bim
- Приложение создает Bar и дает ему Bim
- Приложение создает Foo и дает ему Bar
- Приложение вызывает вызовы Foo Foo Bar Bar делает что-то
Использование контейнера для впрыскивания зависимостей
- Приложение нуждается в Foo so:
- Приложение получает Foo из контейнера, так: Контейнер создает Bim Container создает Bar и дает ему Bim Container cre ats Foo и дает ему Bar
- Применение вызовов Foo Foo вызывает Bar Bar что-то делает
Зависимость Инъекция и зависимость Инъекция Контейнеры - это разные вещи:
- Инъекция зависимостей - это метод для написания лучшего кода
- Контейнер DI - это инструмент, помогающий инъекционным зависимостям
Вам не нужен контейнер, чтобы сделать зависимость инъекции. Однако контейнер может вам помочь.
задан cybernetic.nomad 16 January 2019 в 18:25
поделиться