Шаблон разработки для сокращения связи между компонентами, путем динамичного введения в компонент программного обеспечения зависимостей, что это должно функционировать.

Внедрение зависимости (DI) является для объектно-ориентированного программирования, включающего динамично вводящий (вставку) в компонент программного обеспечения зависимости (сервисные компоненты), что это должно функционировать, не нуждаясь в зависимом компоненте к твердому коду зависимость от сервиса. Это уменьшает связь между зависимым потребителем и сервисом.

Ресурсы / вопросы о фоне

Если Вы нуждаетесь в общем представлении к DI, необходимо обратиться к этому вопросу: Что такое внедрение зависимости?

Если Вы нуждаетесь в нетехническом представлении, можно обратиться к этому вопросу: Как объяснить Внедрение зависимости в 5-летнего.

Если требуется понять отношения между DI и , посмотрите Инверсию Управления <Внедрение зависимости.

Для общих рекомендаций для написания благоприятного для DI кода без Контейнера DI посмотрите Зависимость вводит (DI) “дружественная” библиотека.

Если Вы задаетесь вопросом, почему необходимо использовать Контейнер DI (иначе ) вместо DI Бедного Человека, посмотрите, Почему мне нужен контейнер МОК в противоположность простому коду DI?

Если Вы задаетесь вопросом, каков Корень Состава, посмотрите то, Что является корнем состава в контексте Внедрения зависимости.

Для потенциальных оборотных сторон использования DI посмотрите то, Что оборотные стороны к использованию внедрения зависимости?

Внедрение зависимости и Инверсия Управления тесно связаны. Различие между ними обсуждено в where-exactly-is-the-difference-between-ioc-and-di.

Также может читать основной здесь: Внедрение зависимости Для Новичка - 1

Преимущества внедрения зависимости

  • Разделение проблем.
  • Шаблонное сокращение Кода классов приложений, потому что вся работа для инициализации зависимостей обрабатывается компонентом инжектора.
  • Настраиваемые компоненты подают легко растяжимую заявку.
  • Поблочное тестирование легко с фиктивными объектами.

Недостатки внедрения зависимости

  • Если злоупотребили, это может привести к проблемам обслуживания, потому что эффект изменений известен во времени выполнения.
  • Внедрение зависимости скрывает зависимости от класса обслуживания, которые могут привести к ошибкам периода выполнения, которые были бы зафиксированы во время компиляции.

Связанные шаблоны