Принцип инверсии зависимостей (, ) — принцип объектно-ориентированного программирования, суть которого состоит в том, что классы должны зависеть от абстракций, а не от конкретных деталей. Используется для минимизации зацепления в компьютерных программах. Может рассматриваться как уменьшение знаний о данных и поведении объекта (и зацепления с ним) до минимума, описанного интерфейсом.
Этот принцип также может быть применен и к функциональному программированию, в этом случае зависимость должна быть указана от максимально абстрактных типов данных и функций.
Принцип входит в пятёрку принципов SOLID. Принцип был выведен в трудах Роберта Мартина.
Формулировка: 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. Абстракции не должны зависеть от деталей. Детали должны зависеть от абстракций.
См. также SOLID Инверсия управления
Примечания
Литература
Категория:Объектно-ориентированное программирование Категория:Принципы программирования