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

Какую проблему решает Dependency Injection

Dependency Injection (DI) — это паттерн проектирования, который помогает уменьшить связанность (coupling) между компонентами системы. Основная идея — передача зависимостей извне, а не их создание внутри класса.

Проблемы, которые решает DI:

  1. Тестируемость — легко подменять зависимости на моки/стабы.
  2. Гибкость — можно менять реализацию без изменения кода класса.
  3. Поддержка — код становится чище, зависимости явные.

Пример без DI:

python
class Database:
    def query(self):
        return "data"

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

    def get_data(self):
        return self.db.query()

Пример с DI:

python
class Service:
    def __init__(self, db: Database):  # Зависимость инжектируется
        self.db = db

    def get_data(self):
        return self.db.query()

Теперь Service не знает, как создаётся Database, и его можно тестировать с MockDatabase.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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