Встречается на собеседованиях • сегодня
Нужно ли следовать принципу Dependency Inversion Principle
Да, следовать принципу Dependency Inversion Principle (DIP) важно, особенно в крупных проектах. DIP гласит:
- Модули верхнего уровня не должны зависеть от модулей нижнего уровня. Оба должны зависеть от абстракций.
- Абстракции не должны зависеть от деталей. Детали должны зависеть от абстракций.
Преимущества:
- Уменьшение связанности кода
- Упрощение тестирования (можно подменять зависимости)
- Гибкость при изменении реализации
Пример без DIP:
python
class LightBulb:
def turn_on(self):
print("LightBulb: turned on")
class Switch:
def __init__(self):
self.bulb = LightBulb() # Жёсткая зависимость
def operate(self):
self.bulb.turn_on()Пример с 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()
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы