Что такое Внедрение зависимости (Dependency injection)

Python Middle Без компании
Что такое Внедрение зависимости (Dependency injection)
Ответы
Внедрение зависимости (DI) — это паттерн проектирования, при котором зависимости объекта передаются извне, а не создаются внутри самого объекта. Это делает код более гибким, тестируемым и поддерживаемым. **Пример без DI:** ``` class Database: def fetch_data(self): return "Данные из БД" class Service: def __init__(self): self.db = Database() # Зависимость создается внутри класса def get_data(self): return self.db.fetch_data() ``` **Пример с DI:** ``` class Database: def fetch_data(self): return "Данные из БД" class Service: def __init__(self, db: Database): # Зависимость передается извне self.db = db def get_data(self): return self.db.fetch_data() # Использование db = Database() service = Service(db) # Внедряем зависимость ``` **Преимущества DI:** - Упрощает тестирование (можно передавать mock-объекты) - Уменьшает связанность кода - Позволяет легко менять реализации зависимостей