EMZETT.
Увійти

Впровадження залежностей (dependency injection)

Коротко: За впровадження залежностей об’єкту передається те, що йому потрібно, ззовні, замість того щоб створювати це самому, — зазвичай через конструктор.

Докладніше: У результаті клас залежить лише від інтерфейсу, а не від конкретної реалізації. Конкретний варіант обирається в одному центральному місці. Це знижує зв’язаність, робить код замінним і лише тоді по-справжньому тестованим (модульні тести отримують моки замість справжніх баз даних).

Подробиці

# без DI: жорстка прив’язка
class Report

Див. також: SOLID, інтерфейс, модульний тест, абстракція