抽象观察者
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);
}
}