• 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();
        }
    }