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

Что такое dependency inversion principle

Принцип инверсии зависимостей (DIP) — один из SOLID-принципов, гласящий:

  1. Модули верхнего уровня не должны зависеть от модулей нижнего уровня. Оба должны зависеть от абстракций.
  2. Абстракции не должны зависеть от деталей. Детали должны зависеть от абстракций.

Пример:

java
// Абстракция (интерфейс)
interface MessageService {
    void sendMessage(String message);
}

// Реализация (деталь)
class EmailService implements MessageService {
@Override
public void sendMessage(String message) {
System.out.println("Email sent: " + message);
}
}

// Класс верхнего уровня зависит от абстракции, а не от конкретной реализации
class NotificationService {
private final MessageService service;

text
public NotificationService(MessageService service) {
    this.service = service; // Внедрение зависимости
}

public void notify(String message) {
    service.sendMessage(message);
}

}

text

**Плюсы:**  
- Гибкость (легко заменить реализацию).  
- Упрощение тестирования (можно использовать моки).  
- Снижение связанности кода.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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