Встречается на собеседованиях • сегодня
Что означает инверсия в принципе инверсии зависимостей (Dependency Inversion Principle)
Инверсия в DIP означает, что модули верхнего уровня не должны зависеть от модулей нижнего уровня напрямую. Оба должны зависеть от абстракций (интерфейсов или абстрактных классов). Это переворачивает традиционную иерархию зависимостей.
Пример без DIP:
python
class LightBulb:
def turn_on(self):
print("LightBulb: turned on")
class Switch:
def init(self):
self.bulb = LightBulb() # Прямая зависимость
text
def operate(self):
self.bulb.turn_on()text
С DIP:
```python
from abc import ABC, abstractmethod
class Switchable(ABC):
@abstractmethod
def turn_on(self):
pass
class LightBulb(Switchable):
def turn_on(self):
print("LightBulb: turned on")
class Switch:
def __init__(self, device: Switchable): # Зависимость от абстракции
self.device = device
def operate(self):
self.device.turn_on()Теперь Switch зависит от абстракции Switchable, а не от конкретной LightBulb, что делает код более гибким.

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