当对象间存在一对多关系时,则使用观察者模式(Observer Pattern)。比如,当一个对象被修改时,则会自动通知依赖它的对象。
观察的对象类
import java.util.ArrayList;
import java.util.List;
public class Subject {
private List<Observer> observers
= new ArrayList<Observer>();
private int state;
public void attach(Observer observer){
observers.add(observer);
}
public void notifyAllObservers(){
for (Observer observer : observers) {
observer.update();
}
}
}
观察者类
public abstract class Observer {
protected Subject subject;
public abstract void update();
}
public class ConcreteObserver extends Observer {
@Override
public void update() {
System.out.println("ConcreteObserver do sth");
}
}
Main
ConcreteObserver observer = new ConcreteObserver();
Subject subject = new Subject();
subject.attach(observer);
subject.notifyAllObservers();