Является ли целью структур внедрения зависимостей связать всю программу прямо при инициализации программы? - PullRequest
0 голосов
/ 19 сентября 2018

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

Как следуетВы используете эти рамки?

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

1 Ответ

0 голосов
/ 19 сентября 2018

Оба являются допустимыми подходами, но в этой статье говорится:

Когда речь идет о приложениях на основе запросов, таких как веб-сайты и службы, вы настраиваете контейнер только один раз., но разрешить граф объектов для каждого входящего запроса.

...