DI frameworks наподобие Dagger2 , Guice или Spring позволяют связывать целые графы объектов.Однако в некоторых моментах эти графы объектов должны быть созданы (например, в Dagger2 это происходит за счет использования компонентов, которые используются в коде для инициализации (суб) графов объектов).
Как следуетВы используете эти рамки?
- Инициализировать всю программу (граф объектов) прямо в программе
фаза инициализации?Очевидным преимуществом является то, что вы можете использовать
что-то вроде наследования зависимостей (например, подкомпоненты в
Dagger2)
- Инициализировать различные подграфы в разных местах кода и соединять их вместе вручную?Может ли это быть единственным вариантом, если вы зависите от зависимостей, которые есть только у вас во время выполнения и, следовательно, вам нужно добавить к инициализатору графа объектов?