package cn.yang.test.controller;
/**java的事件监听机制和观察者设计模式
* Created by Dev_yang on 2016/3/1.
*/
public class Demo {
public static void main(String[] args) {
EventSource eventSource = new EventSource();
eventSource.registerListener(new EventListener() {
public void run(Event event) {
System.out.println(event.getEventSource());
}
});
eventSource.run();
}
}
/**
* 事件源
*/
class EventSource{
private EventListener eventListener;
public void registerListener(EventListener eventListener) {
this.eventListener=eventListener;
}
public void run() {
eventListener.run(new Event(this));
}
@Override
public String toString() {
return "我是事件源";
}
}
/**
* 事件监听器
*/
interface EventListener{
void run(Event event);
}
/**
* 事件
*/
class Event{
private EventSource eventSource;
public Event(EventSource eventSource) {
this.eventSource=eventSource;
}
public EventSource getEventSource() {
return eventSource;
}
}