Sobes.tech
Junior — Middle
85

Могли бы вы объяснить, что подразумевается под концепцией внедрения зависимостей в программировании?

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 на другой класс с таким же интерфейсом, например, для тестирования.