Junior — Middle
86
Могли бы вы объяснить, что подразумевается под концепцией внедрения зависимостей в программировании?
Companies where asked
СБЕР Бизнес
Black Wall Group
Answer from AI
sobes.tech AI
Внедрение зависимостей (Dependency Injection, DI) — это принцип проектирования, при котором объект получает свои зависимости (другие объекты, которые он использует) извне, а не создает их самостоятельно.
Это позволяет:
- Уменьшить связанность компонентов
- Упростить тестирование (легко подменять зависимости моками)
- Повысить гибкость и переиспользуемость кода
Пример на Python:
class Engine:
def start(self):
print("Двигатель запущен")
class Car:
def __init__(self, engine): # зависимость передается через конструктор
self.engine = engine
def drive(self):
self.engine.start()
print("Машина едет")
engine = Engine()
car = Car(engine) # внедрение зависимости
car.drive()
Здесь класс Car не создает объект Engine самостоятельно, а получает его извне. Это позволяет легко заменить Engine на другой класс с таким же интерфейсом, например, для тестирования.