Инверсия зависимости (Dependency Inversion Principle) — это один из принципов SOLID, который гласит:
Внедрение зависимости (Dependency Injection, DI) — это шаблон проектирования, один из способов реализации инверсии зависимости. Он предполагает передачу зависимостей (объектов, от которых зависит данный класс) извне, вместо того чтобы класс создавал их самостоятельно.
Основные различия:
Примеры внедрения зависимости:
Constructor Injection: Зависимости передаются через конструктор.
swift
Property Injection: Зависимости устанавливаются через public-свойства (часто с использованием @IBOutlet или при необходимости опциональной зависимости).
swift
Method Injection: Зависимости передаются как параметры методов.
swift
Таким образом, инверсия зависимости — это цель (снижение耦合度 через абстракции), а внедрение зависимости — это средство (один из способов достижения этой цели).