Существует два определения.
«Модули верхних уровней не должны зависеть от модулей нижних уровней. Оба типа модулей должны зависеть от абстракций.»
и
«Абстракции не должны зависеть от деталей. Детали должны зависеть от абстракций.»
Как соблюдать этот принцип. Вы должны использовать все классы через интерфейсы.