监听者模式
监听者模式
监听者模式有三大组成部分:
- 事件源 EventSource 具有注册监听器的方法
- 事件对象 EventObject 事件
- 监听器 Listener 有callback(EventObject)方法,当收到事件发生后的处理。
事件对象:主要目的是包装事件源,然后将本身(事件对象)交给监听器。
public class EventObject {
public EventSource source;
public EventObject(EventSource source) {
this.source = source;
}
}
public class EventSource {
public String eventName;
// 事件源增加监听器对象
private Set<Listener> listenerSet = new HashSet<>();
public void registerEventListener(Listener eventListener){
if (eventListener != null){
listenerSet.add(eventListener);
}
}
public void handle(){
for(Listener listener : listenerSet){
listener.callback(new EventObject(this));
}
System.out.println(this.eventName+"开始处理");
}
}
public interface Listener {
void callback(EventObject event);
}
public class ListenMain {
public static void main(String[] args) {
EventSource source1 = new EventSource();
source1.eventName = "source1";
source1.registerEventListener(event -> {
System.out.println("listen1:" + event.source);
});
source1.registerEventListener(event -> {
System.out.println("listen2:" + event.source);
});
source1.handle();
}
}