Встречается на собеседованиях • сегодня
Что означает слово инверсия в инверсии зависимости
Инверсия зависимости (Dependency Inversion Principle, DIP) — один из принципов SOLID, который гласит, что:
- Модули верхнего уровня не должны зависеть от модулей нижнего уровня. Оба должны зависеть от абстракций.
- Абстракции не должны зависеть от деталей. Детали должны зависеть от абстракций.
Инверсия здесь означает изменение направления зависимости: вместо прямого обращения к конкретным классам, код зависит от интерфейсов/абстракций.
Пример:
python
from abc import ABC, abstractmethod
class Switchable(ABC): # Абстракция
@abstractmethod
def turn_on(self):
pass
class LightBulb(Switchable): # Деталь
def turn_on(self):
print("Лампа включена")
class Fan(Switchable): # Другая деталь
def turn_on(self):
print("Вентилятор включен")
class Switch: # Модуль верхнего уровня
def __init__(self, device: Switchable): # Зависит от абстракции
self.device = device
def operate(self):
self.device.turn_on()
# Использование:
bulb = LightBulb()
switch = Switch(bulb)
switch.operate() # Лампа включенаТеперь Switch зависит от абстракции (Switchable), а не от конкретных классов. Это упрощает расширение кода.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы