Встречается на собеседованиях • сегодня
Приведи пример принципа Dependency Inversion
Dependency Inversion Principle (DIP) гласит, что модули верхнего уровня не должны зависеть от модулей нижнего уровня. Оба должны зависеть от абстракций.
Пример:
java
interface MessageService {
void sendMessage(String message);
}
class EmailService implements MessageService {
@Override
public void sendMessage(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.sendMessage(message);
}}
text
**Суть:**
- `NotificationService` (верхний уровень) зависит от абстракции `MessageService`, а не от конкретной реализации `EmailService`.
- Можно легко заменить `EmailService` на другой сервис (например, `SmsService`), не меняя код `NotificationService`.
- Упрощает тестирование (можно подменить реальный сервис на mock).
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы