11、设计模式
1、观察者模式
EventObject 和 EventListener 是用于实现事件处理的关键类和接口
- EventObject 是一个抽象类,它代表事件对象,包含了事件源对象、事件 ID 等信息
你可以通过继承 EventObject 来创建自定义的事件类 - EventListener 是一个接口,用于定义事件监听器
实现了 EventListener 接口的类可以注册到特定的事件源对象上,以监听并处理事件
// 事件
public class MyEvent extends EventObject {
private int eventId;
public MyEvent(Object source, int eventId) {
super(source);
this.eventId = eventId;
}
public int getEventId() {
return eventId;
}
}
// 观察者
public class MyEventListener implements EventListener {
public void handleEvent(MyEvent event) {
// 处理事件的具体逻辑
int id = event.getEventId();
System.out.println("Event received: " + id);
}
}
// 被观察者
public class EventSource {
private List<EventListener> listeners = new ArrayList<>();
public void addEventListener(EventListener listener) {
listeners.add(listener);
}
public void removeEventListener(EventListener listener) {
listeners.remove(listener);
}
public void fireEvent(EventObject event) {
for (EventListener listener : listeners) {
// 判断监听器是否为 MyEventListener 类的实例
if (listener instanceof MyEventListener) {
((MyEventListener) listener).handleEvent((MyEvent) event);
}
}
}
}
public class Main {
public static void main(String[] args) {
EventSource source = new EventSource();
MyEventListener listener = new MyEventListener();
source.addEventListener(listener);
// 创建事件对象并触发事件
MyEvent event = new MyEvent(source, 1);
source.fireEvent(event);
}
}
本文来自博客园,作者:lidongdongdong~,转载请注明原文链接:https://www.cnblogs.com/lidong422339/p/17580642.html

浙公网安备 33010602011771号