Вопросы к Поиску с Алисой
Механизм подстановки зависимостей в паттерне Dependency Injection (внедрение зависимостей) работает за счёт предоставления внешних зависимостей программному компоненту. apptractor.ru ru.wikipedia.org
Суть паттерна: все зависимости, нужные некоторому классу, передаются ему в качестве параметров конструктора, представленных в виде интерфейсов или абстрактных классов. www.rsdn.org
Пример работы: классу Car для запуска может потребоваться ссылка на класс Engine. apptractor.ru Без внедрения зависимостей класс Car будет создавать и управлять экземпляром Engine внутри своего кода, что создаёт жёсткую связь между классами. www.geeksforgeeks.org
С внедрением зависимостей вместо того, чтобы каждый экземпляр Car конструировал свой собственный объект Engine при инициализации, он получает объект Engine в качестве параметра в своём конструкторе. apptractor.ru
Таким образом, при использовании Dependency Injection объект пассивен и не предпринимает никаких шагов для выяснения зависимостей, а предоставляет для этого сеттеры и/или принимает своим конструктором аргументы, посредством которых внедряются зависимости. ru.wikipedia.org