Объясните концепцию внедрения зависимостей в контексте принципов SOLID.

Внедрение зависимостей (Dependency Injection, DI) — это принцип, при котором объект получает свои зависимости извне, а не создает их самостоятельно.

Короткий ответ

Что ответить на собеседовании

Внедрение зависимостей (Dependency Injection, DI) — это принцип, при котором объект получает свои зависимости извне, а не создает их самостоятельно. Это помогает соблюдать принцип единственной ответственности (Single Responsibility Principle) из SOLID, так как класс не отвечает за создание зависимостей.

Подробный разбор

Ответ с пояснениями

Внедрение зависимостей (Dependency Injection, DI) — это принцип, при котором объект получает свои зависимости извне, а не создает их самостоятельно. Это помогает соблюдать принцип единственной ответственности (Single Responsibility Principle) из SOLID, так как класс не отвечает за создание зависимостей.

Также DI способствует принципу инверсии зависимостей (Dependency Inversion Principle), так как классы зависят от абстракций, а не от конкретных реализаций.

Пример: вместо того, чтобы внутри класса создавать объект сервиса, мы передаем его через конструктор или сеттер.

public interface Service {
    void execute();
}

public class ServiceImpl implements Service {
    public void execute() {
        System.out.println("Выполнение сервиса");
    }
}

public class Client {
    private Service service;

    // Внедрение зависимости через конструктор
    public Client(Service service) {
        this.service = service;
    }

    public void doWork() {
        service.execute();
    }
}

// Использование
Service service = new ServiceImpl();
Client client = new Client(service);
client.doWork();

Таким образом, DI улучшает модульность, тестируемость и гибкость кода.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее