Встречается на собеседованиях • сегодня
Как реализовать Observer
Observer можно реализовать через интерфейсы Observer и Observable (из java.util), либо через кастомную реализацию.
Пример:
java
import java.util.*;
// Наблюдаемый объект
class NewsAgency extends Observable {
private String news;
public void setNews(String news) {
this.news = news;
setChanged(); // Помечаем изменение
notifyObservers(news); // Оповещаем наблюдателей
}
}
// Наблюдатель
class NewsChannel implements Observer {
@Override
public void update(Observable o, Object news) {
System.out.println("Получены новости: " + news);
}
}
// Использование:
NewsAgency agency = new NewsAgency();
NewsChannel channel = new NewsChannel();
agency.addObserver(channel);
agency.setNews("Java 21 released!");
text
**Альтернатива:**
Можно использовать `PropertyChangeListener` или фреймворки (RxJava, Spring Events).
**Нюансы:**
- `Observable` устарел (лучше использовать `PropertyChangeSupport`).
- Для потокобезопасности нужна синхронизация.
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы