Dependency Injection Andrey Stadnik(enemis)
- 9. Другая проблема
Для работы с классом нужно
не забыть о всех его зависимостях,
и вызвать соответствующие set методы!
Как всего этого избежать?
- 11. Inversion of Control (инверсия
управления)
● Factory Method
● Service Locator
● Dependency Injection
- 13. Способы внедрения
●Внедрение в конструкторе - сonstructor Injection
●Внедрение в методе - setter Injection
●Внедрение в свойство - Property Injection
Setter injection
Constructor injection
- 16. Scopes
● container (по умолчанию): Одна итаже
instance объекта в любое время
● prototype: Каждый раз новая instance
● request – каждый подзапрос новая instance
- 23. IoC & Di – все проблемы решены?
Плюсы:
Минусы:
● Отсутствие зависимостей
● Легкость тестирования
● Очень высокий уровень абстракций
●Легкость расширения замены любых компонентов
● Резкое снижение производительности
● Более высокая стоимость разработки
- 28. Компилирование контейнера
Проходит в несколько проходов основано на интерфейсе
CompilerPassInterface
Необходимо для:
Убирание зацикливания
Убирание из общего контейнера приватных и
абстрактных сервисов
Добавление алиасов
Определения тегированных сервисов