Основная идея принципа инверсии зависимостей в объектно-ориентированном программировании состоит в том, что классы должны зависеть от абстракций, а не от конкретных деталей. 2
Это позволяет:
- Сделать компоненты приложения менее связанными между собой. 1 Ассоциации между объектами могут устанавливаться и меняться во время выполнения приложения. 1
- Повысить возможность повторного использования кода и его мобильность. 1
- Снизить зацепление модулей. 5 Когда модули жёстко зацеплены, они слишком много знают друг о друге и не функционируют по отдельности. 5 В такой ситуации изменения в одном будут требовать изменений в других. 5
- Упростить тестирование системы. 5 Если модули зависят от интерфейсов, для тестирования достаточно создать заглушку, реализующую этот интерфейс. 5