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号
浙公网安备 33010602011771号