Dependency injection — это создание связей между модулями через конструктор (вынося во вне задачу по созданию других модулей для независимости изменений модулей и независимости тестирования). Объекты передаются через конструктор в качестве атрибута, когда создается текущий объект.
public class Module1
{
private Module2 module2;
public Module1(Module2 module2)
{
this.module2 = module2;
}
public void doSomething()
{
module2.doSomething();
}
}
Если у модуля большое количество зависимостей, то потребуется создать «тяжелый» конструктор со множеством атрибутов (это усложняет код и делает его более трудным для чтения). Эту проблему решает dependency injector.
Dependency injector - еще один модуль в программе, который отвечает за создание и предоставление экземпляров остальным модулям. Модули создаются в одном месте, и у нас появляется полный контроль над этим процессом.
public class Module1
{
private Module2 module2;
public Module1(Module2 module2)
{
this.module2 = module2;
}
public void doSomething()
{
module2.doSomething();
}
}
Если у модуля большое количество зависимостей, то потребуется создать «тяжелый» конструктор со множеством атрибутов (это усложняет код и делает его более трудным для чтения). Эту проблему решает dependency injector.
Dependency injector - еще один модуль в программе, который отвечает за создание и предоставление экземпляров остальным модулям. Модули создаются в одном месте, и у нас появляется полный контроль над этим процессом.