Найти тему
Легко в’IT

SOLID: Принцип инверсии зависимостей (Dependency Inversion Principle)

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

Таким образом, принцип инверсии зависимостей говорит, что классы или модули верхнего уровня не должны зависеть от классов или модулей нижнего уровня напрямую. Вместо этого они должны зависеть от абстракций, которые определяют, что должны делать модули или классы нижнего уровня.

Этот Принцип помогает создавать более гибкие и легко поддерживаемые программы. Он позволяет разработчикам создавать модули или классы, которые могут быть переиспользованы в различных контекстах и легко заменены без изменения кода в других модулях или классах.

Пример. Мы хотим сделать файловый менеджер, который в красивом окошке будет показывать нам папки и файлы и давать возможность ими управлять. И здесь вроде бы само собой разумеется, что нам надо подключить библиотеку работы с файлами на жестком диске. Но если мы потом захотим подключать ресурсы по FTP, по сети с других компьютеров? Работа с такими файлами в корне же различается с работой с локальными файлами на жестком диске. Значит нужно выносить этот функционал наружу, на верхний уровень абстракции, чтобы нам не приходилось изменять нижний уровень всякий раз, а мы просто могли добавить, к примеру, еще один класс.

Собственно, в этом и заключается пятый принцип SOLID. Теперь ты знаешь их все и если что, вопрос на собеседовании тебя не смутит. Ведь не смутит же?

Наука
7 млн интересуются