interface EventListener {
//事件处理
void handleEvent(EventObject event);
}
@Data
@AllArgsConstructor
class EventObject implements Serializable {
String appName;
}
class EventSource {
//监听器列表,监听器的注册则加入此列表
private Vector<EventListener> ListenerList = new Vector<EventListener>();
//注册监听器
public void addListener(EventListener eventListener) {
ListenerList.add(eventListener);
}
//撤销注册
public void removeListener(EventListener eventListener) {
ListenerList.remove(eventListener);
}
//接受外部事件
public void notifyListenerEvents(EventObject event) {
ListenerList.stream().forEach(v->v.handleEvent(event));
}
}
class AbSonxx1 implements EventListener {
private static final String appName = "AAAA";
@Override
public void handleEvent(EventObject event) {
if(appName.equals(event.getAppName())){
System.out.println("AbSonxx1监听到并执行完成");
}
}
}
class AbSonxx2 implements EventListener {
private static final String appName = "BBBB";
@Override
public void handleEvent(EventObject event) {
if (appName.equals(event.getAppName())) {
System.out.println("AbSonxx2监听到并执行完成");
}
}
}
class Tvv {
public static void main(String[] args) {
EventListener listener1 = new AbSonxx1();
EventListener listener2 = new AbSonxx2();
EventSource eventSource = new EventSource();
eventSource.addListener(listener1);
eventSource.addListener(listener2);
EventObject event = new EventObject("AAAA");
eventSource.notifyListenerEvents(event);
}
}
监听注册者模式分发
最新推荐文章于 2022-05-06 14:00:12 发布