Инверсия зависимости (Dependency Inversion Principle) — это один из принципов SOLID, который гласит:
- Модули верхнего уровня не должны зависеть от модулей нижнего уровня. Оба должны зависеть от абстракций.
- Абстракции не должны зависеть от деталей, детали должны зависеть от абстракций.
Внедрение зависимости (Dependency Injection, DI) — это шаблон проектирования, один из способов реализации инверсии зависимости. Он предполагает передачу зависимостей (объектов, от которых зависит данный класс) извне, вместо того чтобы класс создавал их самостоятельно.
Основные различия:
- DIC - принцип проектирования, DI - шаблон проектирования.
- DIC - определяет, какими должны быть отношения между высокоуровневыми и низкоуровневыми модулями (зависимость от абстракций).
- DI - метод, позволяющий реализовать эти отношения. Это конкретная техника для поставки зависимостей объекту.
Примеры внедрения зависимости:
- Constructor Injection: Зависимости передаются через конструктор.
swift
Инверсия зависимости (Dependency Inversion Principle) — это один из принципов SOLID, который гласит:
- Модули верхнего уровня не должны зависеть от модулей нижнего уровня. Оба должны зависеть от абстракций.
- Абстракции не должны зависеть от деталей, детали должны зависеть от абстракций.
Внедрение зависимости (Dependency Injection, DI) — это шаблон проектирования, один из способов реализации инверсии зависимости. Он предполагает передачу зависимостей (объектов, от которых зависит данный класс) извне, вместо того чтобы класс создавал их самостоятельно.
Основные различия:
- DIC - принцип проектирования, DI - шаблон проектирования.
- DIC - определяет, какими должны быть отношения между высокоуровневыми и низкоуровневыми модулями (зависимость от абстракций).
- DI - метод, позволяющий реализовать эти отношения. Это конкретная техника для поставки зависимостей объекту.
Примеры внедрения зависимости:
- Constructor Injection: Зависимости передаются через конструктор.
swift