Зачем нужен dependency injection
Python
Middle
Без компании
Зачем нужен dependency injection
Ответы
Dependency Injection (DI) — это паттерн проектирования, который позволяет передавать зависимости объекта извне, а не создавать их внутри. Это делает код более гибким, тестируемым и поддерживаемым.
**Преимущества DI:**
- Уменьшает связанность между компонентами.
- Упрощает тестирование (можно подменять зависимости на моки/стабы).
- Делает код более модульным и переиспользуемым.
**Пример без DI:**
```
class Database:
def query(self):
return "data"
class Service:
def __init__(self):
self.db = Database() # Жесткая зависимость
def get_data(self):
return self.db.query()
```
**Пример с DI:**
```
class Service:
def __init__(self, db): # Зависимость передается извне
self.db = db
def get_data(self):
return self.db.query()
```
DI особенно полезен в крупных проектах и при написании unit-тестов. В Python его можно реализовать вручную или с помощью библиотек (например, `injector` или `dependency-injector`).