DependencyInjection
Перекрываемые контейнеры сервисов
Типы сервисов:
- Общий сервис
- Фабричная ссылка (при каждом вызове инстанциируется новый объект)
Способы получения сервисов:
Возможные компоновки:
- Реализация Очереди контейнеров, с возможностью вклинивать свой контейнер в эту очередь по приоритету.
- Контейнер с переопределением по наследуемости от родительского контейнера
-
Вызов из упорядоченной цепочки: Требует формироания специальной цепочки Способ может быть необходим если ссылка на локатор-сервисов должна быть постоянна
service call(service4) -> DI_CHAIN[order: DI1,DI2,DI3,DI4] ------------------------------------- -> DI4 -service1 -service2 -> DI3 -service1 -> DI2 -service1 -service2 -service4 <==== called-here ==== -> DI1 -service2 -service3 -service4 --------------------------------------
-
Вызов из наследуемого контейнера: При перекрытии с помощью вложенности,нужно контролировать ссылки на конечный контейнер(самый глубокий)
service call(service4) -> DI4 -service1 -service2 -> DI3 -service1 -> DI2 -service1 -service2 -service4 <==== called-here ==== -> DI1 -service2 -service3 -service4