Java内容重新整理删除过期的东西

This commit is contained in:
estom
2025-09-14 03:49:42 -04:00
parent 9b8524ff80
commit 885b795e45
413 changed files with 643 additions and 1340 deletions

View File

@@ -0,0 +1,33 @@
package cn.aofeng.demo.eventdriver_normal;
/**
* 事件驱动调用示例
* @author aofeng <aofengblog@163.com>
*/
public class ClientMain {
public static void main(String[] args) {
EventSource eventSource = new EventSource();
eventSource.addListener(new HelloWorldListener());
eventSource.addListener(new SimpleListener());
eventSource.fire("hello, world!");
}
public static class HelloWorldListener implements EventListener {
@Override
public void execute(Event event) {
System.out.println("监听器:"+this + "接收到事件,事件附带的数据:" + event.getData());
}
}
public static class SimpleListener implements EventListener {
@Override
public void execute(Event event) {
System.out.println("监听器:"+this + "接收到事件,事件附带的数据:" + event.getData());
}
}
}

View File

@@ -0,0 +1,17 @@
package cn.aofeng.demo.eventdriver_normal;
/**
* 事件
* @author aofeng <aofengblog@163.com>
*/
public class Event {
private Object data;
public Event(Object obj){
this.data = obj;
}
public Object getData() {
return data;
}
}

View File

@@ -0,0 +1,16 @@
package cn.aofeng.demo.eventdriver_normal;
/**
* 事件监听器(监听一个或多个事件并进行具体的处理)
*
* @author aofeng <aofengblog@163.com>
*/
public interface EventListener {
/**
* 处理事件
*
* @param event 事件
*/
public void execute(Event event);
}

View File

@@ -0,0 +1,47 @@
package cn.aofeng.demo.eventdriver_normal;
import java.util.ArrayList;
import java.util.List;
/**
* 事件源(事件发送者)
*
* @author aofeng <aofengblog@163.com>
*/
public class EventSource {
private List<EventListener> listeners = new ArrayList<EventListener>();
public EventSource() {
}
/**
* 添加事件监听器
*
* @param listener 事件监听器
*/
public boolean addListener(EventListener listener) {
return listeners.add(listener);
}
/**
* 移除事件监听器
*
* @param listener 移除事件监听器
*/
public boolean removeListener(EventListener listener) {
return listeners.remove(listener);
}
/**
* 派发事件
*
* @param data 事件
*/
public void fire(Object data) {
for (EventListener listener : listeners) {
listener.execute(new Event(data));
}
}
}