import java.util.ArrayList; import java.util.List; public class Subject { private List<Observer> observers = new ArrayList<>(); private int state; public int getState() { return state; } public void setState(int state) { this.state = state; notifyObservers(); } public void attach(Observer observer) { observers.add(observer); } public void notifyObservers() { for (Observer observer : observers) { observer.update(); } } } public abstract class Observer { protected Subject subject; public abstract void update(); } public class ConcreteObserver extends Observer { public ConcreteObserver(Subject subject) { this.subject = subject; this.subject.attach(this); } @Override public void update() { System.out.println("State updated: " + subject.getState()); } } public class Application { public static void main(String[] args) { Subject subject = new Subject(); new ConcreteObserver(subject); } }


上一篇:
下一篇:
切换中文