Вопрос проверяет знание принципов SOLID и умение сопоставлять их с архитектурными подходами.
Принцип внедрения зависимостей относится к последнему принципу SOLID — Dependency Inversion Principle (DIP). Он гласит, что модули верхнего уровня не должны зависеть от модулей нижнего уровня — оба должны зависеть от абстракций.
Dependency Inversion Principle (DIP):
Один из принципов SOLID.
Суть: классы не должны создавать свои зависимости напрямую.
Зависимости должны внедряться извне (например, через конструктор).
# Плохой пример (жесткая зависимость):
class Service:
def get_data(self):
return "data"
class Controller:
def __init__(self):
self.service = Service()
# Хороший пример (инверсия зависимости):
class Controller:
def __init__(self, service):
self.service = serviceВывод:
DIP делает код более гибким, тестируемым и легко заменяемым. Это основа для использования внедрения зависимостей.