Документ Википедии ,
В программной инженерии внедрение зависимостей - это метод, при котором один объект (или статический метод) предоставляет зависимости другого объекта. Зависимость - это объект, который можно использовать (сервис).
А Проще говоря ,
Когда класс A использует некоторые функциональные возможности класса B, тогда говорят, что класс A имеет зависимость от класса B.
Или
Передача задачи создания объекта кому-либо еще и непосредственное использование зависимости называется внедрением зависимости.
Диаграмма:
- Я был действительно смущен тем, какая часть моего приложения (классов) мне нужно применять инъекцию зависимости, а какая нет.
Вы почти широко используете это, но в андроиде это слово хорошо известно. Давайте рассмотрим пример,
Предположим, у нас есть два контроллера, masterVC и detailVC. detailVC показывает данные в деталях, какие данные выбраны в masterVC. Теперь вам нужно передать выбранные данные (ID, ключ) из masterVC в detailVC. Для этого вам нужно получить доступ к методу detailVC или переменной в masterVC, как показано ниже,
let objDetailVC = DetailVC() // Init of class
objDetailVC.ID = selectedID
// push controller
Теперь detailVC зависит от ID, это называется внедрение зависимостей ( DI ).
- Я думаю, это делает мой код очень сложным.
Нет, это делает ваш проект более динамичным. В настоящее время я управляю 5 контроллерами в одном контроллере с помощью структуры MVC и внедрения зависимостей. Проект очень плавный, хорошо управляемый, многократное использование кода.
Так что все зависит от вас, как вы управляете кодом.
Редактировать
Вы можете использовать DI, как в примере выше, или вы можете создать метод detailVC и рассматривать его как абстракцию.
Для получения более подробной информации см .: Cocoacast: Гайки и болты впрыска зависимости в Swift