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) { |
| |
| 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); |
| } |
| } |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步