Junior — Middle
88
«Көзөмөлчү» үлгүсү эмне экенин жана кайсы учурларда колдонулушу мүмкүн экенин түшүндүрө аласызбы?
AIден жооп
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.");
}
}