Назад к вопросам
Junior — Middle
60
Можете объяснить, что такое паттерн "наблюдатель" и в каких случаях его применяют?
Ответ от нейросети
sobes.tech AI
Паттерн "наблюдатель" (Observer) — это поведенческий паттерн, который позволяет объекту (издателю) оповещать другие объекты (наблюдатели) об изменениях своего состояния.
Применяется, когда нужно реализовать механизм подписки, чтобы при изменении данных автоматически обновлять связанные компоненты без тесной связи между ними.
Пример: в GUI при изменении модели данных все связанные представления (виджеты) получают уведомление и обновляются.
Пример на Java:
interface Observer {
void update();
}
class Subject {
private List<Observer> observers = new ArrayList<>();
private int state;
public void attach(Observer o) {
observers.add(o);
}
public void setState(int state) {
this.state = state;
notifyAllObservers();
}
private void notifyAllObservers() {
for (Observer o : observers) {
o.update();
}
}
}
class ConcreteObserver implements Observer {
@Override
public void update() {
System.out.println("State changed, observer notified.");
}
}