Встречается на собеседованиях • сегодня
Приведи пример зависимости от абстракции, а нет от объекта
Вот пример зависимости от абстракции (интерфейса), а не от конкретного класса:
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
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы