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

Как применял на практике инверсию зависимостей

Инверсия зависимостей (Dependency Inversion Principle, DIP) применяется для уменьшения связанности между компонентами. Вместо прямого создания зависимостей внутри класса, они передаются извне (через конструктор, сеттеры или DI-фреймворки).

Пример с интерфейсом и внедрением зависимости:

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

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

class NotificationService {
private final MessageService messageService;

text
public NotificationService(MessageService messageService) {
    this.messageService = messageService;
}

public void notifyUser(String message) {
    messageService.send(message);
}

}

text
**Практическое применение:**
- Использовал Spring для автоматического внедрения зависимостей через `@Autowired`
- Заменял реализацию (например, `SmsService` вместо `EmailService`) без изменения `NotificationService`
- Упрощал тестирование через моки (Mockito)
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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