Несколько слов о Dependency Injection | OTUS
OTUS исполняется 3 года!
Скидки до 30% в честь дня рождения! Успейте купить курс по выгодной цене ➞
Выбрать курс

Курсы

Программирование
MS SQL Server разработчик AWS для разработчиков CI/CD на AWS, Azure и Gitlab Архитектура и шаблоны проектирования
-20%
Разработчик C++
-20%
Разработчик Java
-20%
React.js разработчик
-20%
Интенсив "Оптимизация в Java"
-50%
Framework Laravel
-30%
Базы данных
-20%
Разработчик на Spring Framework
-20%
Разработчик Golang
-10%
Разработчик C#
-10%
Team Lead 2.0
-15%
Vue.js разработчик
-20%
Разработчик Java Enterprise ReactJS/React Native-разработчик Разработчик голосовых ассистентов и чат-ботов
Специализации Курсы в разработке Подготовительные курсы
+7 499 110-61-65

Несколько слов о Dependency Injection

iOS_Deep_10.10-5020-fa1af2.png

В реальных приложениях практически каждый класс имеет немалое число зависимостей — других классов, на которые он рассчитывает для осуществления своих задач. Эти зависимости, в свою очередь, могут зависеть от других классов, и т.д.

В результате может получится достаточно большое и сложное дерево зависимостей, которое, если неправильно с ним работать, существенно осложнит понимание логики работы класса, тестирование и отладку.

И здесь на помощь приходит паттерн Dependency Injection, или, сокращенно, DI.

В чем его суть?

Всё очень просто — все зависимости какого-то класса ему явно предоставляет некоторый внешний механизм, который обычно называется DI-контейнером.

Преимущества такого подхода очевидны: • Управление зависимостями вынесено во внешний класс, S из SOLID; • Все зависимости явно описываются и можно легко понять, что к чему относится; • При предоставлении зависимостей контейнер может легко их подменить для того, чтобы подставить mock/stub классы для тестирования; • Сильно понижается связанность классов, что ведёт к более чистому коду.

Не пропустите новые полезные статьи!

Спасибо за подписку!

Мы отправили вам письмо для подтверждения вашего email.
С уважением, OTUS!

Автор
0 комментариев
Для комментирования необходимо авторизоваться
🔥 Скидки до 50% на новые супер-интенсивы!
«Тестирование игр», «Data Engineer», «работа с протоколом BGP». Узнайте подробности в чате ➞