Код: Выделить всё
import java.util.ArrayList;
import java.util.List;
class Subject {
private List observers = new ArrayList();
private String state;
public void subscribe(Observer observer) {
observers.add(observer);
}
public void unsubscribe(Observer observer) {
observers.remove(observer);
}
public void setState(String state) {
this.state = state;
// Notify observers
}
public String getState() {
return state;
}
}
class Observer {
private String name;
public Observer(String name) {
this.name = name;
}
public void update(String state) {
System.out.println(name + ": " + state);
}
}
Я попробовал перебрать список наблюдателей в методе setState и вызвать метод обновления для каждого наблюдателя. Я ожидал, что наблюдатели напечатают обновленное состояние, но не знаю, как правильно связать классы субъекта и наблюдателя.
Что на самом деле произошло?
В настоящее время программа компилируется, но не выдает ожидаемый результат, поскольку я не реализовал логику уведомления.
Ожидаемый результат:
Я хочу, чтобы класс субъекта уведомлял все подписанные наблюдатели при каждом изменении состояния, создавая следующий вывод:
Наблюдатель 1: Состояние изменено!
Наблюдатель 2: Состояние изменено!
Подробнее здесь: https://stackoverflow.com/questions/792 ... -in-librar
Мобильная версия