Шаблон разработки для сокращения связи между компонентами, путем динамичного введения в компонент программного обеспечения зависимостей, что это должно функционировать.
Внедрение зависимости (DI) является шаблоном разработки для объектно-ориентированного программирования, включающего динамично вводящий (вставку) в компонент программного обеспечения зависимости (сервисные компоненты), что это должно функционировать, не нуждаясь в зависимом компоненте к твердому коду зависимость от сервиса. Это уменьшает связь между зависимым потребителем и сервисом.
Если Вы нуждаетесь в общем представлении к DI, необходимо обратиться к этому вопросу: Что такое внедрение зависимости?
Если Вы нуждаетесь в нетехническом представлении, можно обратиться к этому вопросу: Как объяснить Внедрение зависимости в 5-летнего.
Если требуется понять отношения между DI и инверсией управления (IoC), посмотрите Инверсию Управления <Внедрение зависимости.
Для общих рекомендаций для написания благоприятного для DI кода без Контейнера DI посмотрите Зависимость вводит (DI) “дружественная” библиотека.
Если Вы задаетесь вопросом, почему необходимо использовать Контейнер DI (иначе контейнер МОК) вместо DI Бедного Человека, посмотрите, Почему мне нужен контейнер МОК в противоположность простому коду DI?
Если Вы задаетесь вопросом, каков Корень Состава, посмотрите то, Что является корнем состава в контексте Внедрения зависимости.
Для потенциальных оборотных сторон использования DI посмотрите то, Что оборотные стороны к использованию внедрения зависимости?
Внедрение зависимости и Инверсия Управления тесно связаны. Различие между ними обсуждено в where-exactly-is-the-difference-between-ioc-and-di.
Также может читать основной здесь: Внедрение зависимости Для Новичка - 1