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

Зачем нужен Dependency Inversion

Принцип внедрения зависимости (Dependency Injection, DI) помогает уменьшить связанность между компонентами системы, упрощает тестирование и делает код более гибким. Вместо жесткого создания зависимостей внутри класса, они передаются извне (через конструктор, метод или свойство).

Пример без DI:

python
class Database:
    def save(self, data):
        print(f"Saving {data} to database")

class UserService:
    def __init__(self):
        self.db = Database()  # Жесткая зависимость

    def create_user(self, user):
        self.db.save(user)

Пример с DI:

python
class UserService:
    def __init__(self, db):  # Зависимость внедряется
        self.db = db

    def create_user(self, user):
        self.db.save(user)

# Теперь можно легко подменить реализацию
db = Database()
service = UserService(db)

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

  • Легко менять реализации (например, на mock для тестов)
  • Код становится более модульным
  • Упрощается рефакторинг
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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