抽象观察者
public interface EventListener { public void handleEvent(Event event); }
抽象观察主体
public class EventHandler { //持有观察者容器 private HashSet<EventListener> listeners = new HashSet<EventListener>(); public EventHandler() { } //添加观察者 public void addListener(EventListener listener) { listeners.add(listener); } //通知所有观察者 public void fireEventListeners(Event event) { ArrayList<EventListener> listeners = new ArrayList<EventListener>(this.listeners); for (EventListener listener : listeners) { listener.handleEvent(event); } } //删除观察者 public void removeListener(EventListener listener) { listeners.remove(listener); } }