观察者模式 (Observer Pattern)


观察者模式很简单,在被观察对象中添加观察者,当被观察对象有动作时,通知所有观察者们。

abstract class Subject {
    
    protected ArrayList observers = new ArrayList<>();
    
    public void attach(Observer observer) {
        observers.add(observer);
    }
    
    public void detach(Observer observer) {
        observers.remove(observer);
    }
    
    public abstract void notice();
    
}

class ConcreteSubject extends Subject {

    @Override
    public void notice() {
        for(int i=0; i) {
            observers.get(i).update();
        }
    }
    
}