Встречается на собеседованиях • сегодня
Зачем нужен 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 для тестов)
- Код становится более модульным
- Упрощается рефакторинг

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы