mirror of
https://github.com/Estom/notes.git
synced 2026-02-03 18:44:19 +08:00
Java内容重新整理删除过期的东西
This commit is contained in:
33
Java/JavaDemo/codedemo/eventdriver_normal/ClientMain.java
Normal file
33
Java/JavaDemo/codedemo/eventdriver_normal/ClientMain.java
Normal 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());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
17
Java/JavaDemo/codedemo/eventdriver_normal/Event.java
Normal file
17
Java/JavaDemo/codedemo/eventdriver_normal/Event.java
Normal 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;
|
||||
}
|
||||
}
|
||||
16
Java/JavaDemo/codedemo/eventdriver_normal/EventListener.java
Normal file
16
Java/JavaDemo/codedemo/eventdriver_normal/EventListener.java
Normal 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);
|
||||
|
||||
}
|
||||
47
Java/JavaDemo/codedemo/eventdriver_normal/EventSource.java
Normal file
47
Java/JavaDemo/codedemo/eventdriver_normal/EventSource.java
Normal 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));
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user