И заключительная статья из цикла про SOLID. Расскажу про принцип инверсии зависимостей. Напомню, что мы говорим про объектно-ориентированное программирование. Так вот, это принцип, который утверждает, что модули верхнего уровня не должны зависеть от модулей нижнего уровня. Оба уровня не должны от деталей реализации. Но при этом детали реализации должны зависеть от абстракций.
Таким образом, принцип инверсии зависимостей говорит, что классы или модули верхнего уровня не должны зависеть от классов или модулей нижнего уровня напрямую. Вместо этого они должны зависеть от абстракций, которые определяют, что должны делать модули или классы нижнего уровня.
Этот Принцип помогает создавать более гибкие и легко поддерживаемые программы. Он позволяет разработчикам создавать модули или классы, которые могут быть переиспользованы в различных контекстах и легко заменены без изменения кода в других модулях или классах.
Пример. Мы хотим сделать файловый менеджер, который в красивом окошке будет пок