Встречается на собеседованиях • сегодня

Нужно ли следовать принципу Dependency Inversion Principle

Да, следовать принципу Dependency Inversion Principle (DIP) важно, особенно в крупных проектах. DIP гласит:

  1. Модули верхнего уровня не должны зависеть от модулей нижнего уровня. Оба должны зависеть от абстракций.
  2. Абстракции не должны зависеть от деталей. Детали должны зависеть от абстракций.

Преимущества:

  • Уменьшение связанности кода
  • Упрощение тестирования (можно подменять зависимости)
  • Гибкость при изменении реализации

Пример без 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()
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы