package evnet;
/**
*
* @author li
*
*/
public class Event {
private String eventName;
private IEventHandler eventHandler;
public Event(String eventName, IEventHandler eventHandler) {
super();
this.eventName = eventName;
this.eventHandler = eventHandler;
}
public String getEventName() {
return eventName;
}
public void setEventName(String eventName) {
this.eventName = eventName;
}
public IEventHandler getEventHandler() {
return eventHandler;
}
public void setEventHandler(IEventHandler eventHandler) {
this.eventHandler = eventHandler;
}
}
package evnet;
import java.util.ArrayList;
import java.util.List;
public class EventEmitter {
private List<Event> eventList = new ArrayList<Event>();
public void on(String eventName, IEventHandler eventHandler) {
eventList.add(new Event(eventName, eventHandler));
}
public void emit(String eventName, List<Object> params) {
for (Event event : eventList) {
if (event.getEventName().equals(eventName)) {
event.getEventHandler().handleEvent(params);
}
}
}
}
package evnet;
import java.util.List;
public interface IEventHandler {
public void handleEvent(List<Object> params);
}
package evnet;
import java.util.ArrayList;
import java.util.List;
public class EventHandler implements IEventHandler {
@Override
public void handleEvent(List<Object> params) {
System.out.println("处理事件" + params.toString());
}
public static void main(String[] args) {
EventEmitter eventEmitter = new EventEmitter();
eventEmitter.on("click", new EventHandler());
List<Object> params = new ArrayList<>();
params.add("test");
eventEmitter.emit("click", params);
}
}