- Observer, 对象变化,对观察者广播
-
public interface Observer {
public void update();
}
public class Observer1 implements Observer {
@Override
public void update(){}
}
public interface Subject{
public void add(Observer observer);
public void del(Observer observer);
public void notifyObservers();
public void operate()
}
public abstract class AbstractSubject implements Subject {
private Vector<Observer> vector = new Vector<Observer>();
@Override
public void add(Observer observer) {
vector.add(observer);
}
@Override
public void del(Observer observer) {
vector.remove(observer);
}
@Override
public void notifyObservers(){
Enumeration<Observer> enumo = vector.elements();
while (enumo.hasMoreElements()) {
enumo.nextElement().update();
}
}
}
public class MySubject extends AbstractSubject {
@Override
public void operate() {
notifyObservers();
}
}