Source Code
197 subscribers
30 photos
3 files
80 links
Download Telegram
#principles
Внедрение зависимостей (Dependency injection, DI)

Внедрение зависимостей — это стиль настройки объекта, при котором поля объекта задаются внешней сущностью. Другими словами, объекты настраиваются внешними объектами. DI — это альтернатива самонастройке объектов.

Эта концепция состоит в том, чтобы перенести ответственность за создание экземпляра объекта из тела метода за пределы класса и передать уже созданный экземпляр объекта обратно.

Звучит это все довольно абстрактно, так что вот пример:

Представьте себе очень простую зависимость между двумя классами: класс «Автомобиль» (Car) зависит от класса «Двигатель» (CarEngine).

Однако, мы знаем, что это стоит программировать с помощью интерфейса: (№1)

Но, чтобы изолировать класс Car, недостаточно ввести интерфейс Engine. В коде класса Car также должно быть невозможным создание нового экземпляра класса CarEngine: (№2)

Теперь с помощью этого дизайна можно создавать экземпляры класса Car: (№3)