Назад к вопросам
Иннотех
Junior — Middle
69
Объясните концепцию внедрения зависимостей в контексте принципов SOLID.
Компании, где спрашивали
Ответ от нейросети
sobes.tech AI
Внедрение зависимостей (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 улучшает модульность, тестируемость и гибкость кода.