Простыми словами
Например, два похожих участка кода сегодня выглядят одинаково, но могут изменяться по разным причинам уже в следующем релизе. Поэтому принцип используют как проверочный вопрос при изменении кода - иначе небольшая новая функция начинает требовать правок во множестве несвязанных мест.
Механизм действия
Сначала проверяют, есть ли исходное условие из определения. Затем смотрят, как оно влияет на структуру компонентов, потоки данных, ограничения и действия участников. Если эту связь не удаётся наблюдать, принцип не стоит использовать как готовое объяснение.
Пример в работе
Решение принимают без учета механизма «Dependency Inversion Principle», оценивая только ближайший эффект.
Перед изменением проверяют, как «Dependency Inversion Principle» влияет на ограничения, стимулы, зависимости и вторичные последствия.
Ограничения
«Dependency Inversion Principle» объясняет только часть происходящего в области «Архитектура ПО». Сам принцип не говорит, насколько сильным будет эффект в вашем случае, и не заменяет измерения. При другом масштабе, среде или временном горизонте результат может отличаться.
Источник
Robert C. Martin. Agile Software Development: Principles, Patterns, and Practices (2002).