Принцип инверсии зависимостей (англ. dependency inversion principle, DIP) — принцип объектно-ориентированного программирования, суть которого состоит в том, что классы должны зависеть от абстракций, а не от конкретных деталей[1]. Используется для минимизации зацепления в компьютерных программах. Может рассматриваться как уменьшение знаний о данных и поведении объекта (и зацепления с ним) до минимума, описанного интерфейсом.
Этот принцип также может быть применен и функциональному программированию, в этом случае зависимость должна быть указана от максимально абстрактных типов данных и функций.
Принцип входит в пятёрку принципов SOLID. Принцип был выведен в трудах Роберта Мартина[1][2].
Формулировка[2]:
- A. High level modules should not depend upon low level modules. Both should depend upon abstractions.
- B. Abstractions should not depend upon details. Details should depend upon abstractions.
Формулировка на русском языке:
- A. Модули верхних уровней не должны зависеть от модулей нижних уровней. Оба типа модулей должны зависеть от абстракций.
- B. Абстракции не должны зависеть от деталей. Детали должны зависеть от абстракций.
Энциклопедичный YouTube
-
1/3Просмотров:75 6991 385805
-
SOLID принципы: DIP (Принцип инверсии зависимостей (The Dependency Inversion Principle)
-
Принцип инверсии зависимостей в C# и .NET
-
Dependency Inversion Principle (DIP) | SWIFT ГОТОВИМСЯ К СОБЕСЕДОВАНИЮ
Субтитры
См. также
Примечания
Литература
- Роберт Мартин. Clean Code A Handbook of Agile Software Craftsmanship. — Бостон, Массачусетс: Pearson Education, Inc, 2009. — 462 с. — ISBN 0-13-235088-2.
Обычно почти сразу, изредка в течении часа.