只是不愿随波逐流 ...|

lidongdongdong~

园龄:2年7个月粉丝:14关注:8

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);
}
}
posted @   lidongdongdong~  阅读(19)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
展开