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

Как реализовать 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`).  
- Для потокобезопасности нужна синхронизация.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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