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

Приведи пример зависимости от абстракции, а нет от объекта

Вот пример зависимости от абстракции (интерфейса), а не от конкретного класса:

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

// Конкретная реализация 1
class EmailService implements MessageService {
    @Override
    public void sendMessage(String message) {
        System.out.println("Sending email: " + message);
    }
}

// Конкретная реализация 2
class SMSService implements MessageService {
    @Override
    public void sendMessage(String message) {
        System.out.println("Sending SMS: " + message);
    }
}

// Класс зависит от абстракции MessageService
class NotificationService {
private final MessageService messageService;

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

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

}

// Использование
MessageService emailService = new EmailService();
NotificationService notification = new NotificationService(emailService);
notification.notifyUser("Hello!");

text

Ключевые моменты:
1. `NotificationService` зависит от интерфейса `MessageService`, а не от конкретных реализаций
2. Можно легко заменить реализацию (например, на `SMSService`) без изменения `NotificationService`
3. Соблюдается принцип инверсии зависимостей (DIP) из SOLID
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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