Встречается на собеседованиях • сегодня

Что такое SOLID dependency injection

SOLID dependency injection (DI) — это применение принципов SOLID для управления зависимостями в приложении. DI позволяет внедрять зависимости извне, а не создавать их внутри класса, что делает код более гибким и тестируемым.

Ключевые аспекты:

  • Single Responsibility (S) — класс зависит от абстракций, а не от конкретных реализаций.
  • Open/Closed (O) — новые зависимости можно добавлять без изменения существующего кода.
  • Liskov Substitution (L) — зависимости могут заменяться их подтипами.
  • Interface Segregation (I) — клиенты зависят от узкоспециализированных интерфейсов.
  • Dependency Inversion (D) — модули верхнего уровня не зависят от модулей нижнего уровня, оба зависят от абстракций.

Пример:

java
interface MessageService {  
    void send(String message);  
}  

class EmailService implements MessageService {  
    @Override  
    public void send(String message) {  
        System.out.println("Email sent: " + message);  
    }  
}  

class NotificationService {  
    private final MessageService messageService;  

    // DI через конструктор  
    public NotificationService(MessageService messageService) {  
        this.messageService = messageService;  
    }  

    public void notify(String msg) {  
        messageService.send(msg);  
    }  
}  

Используя DI (например, через Spring или ручное внедрение), мы соблюдаем SOLID, упрощаем тестирование и уменьшаем связанность.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы