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;
}
}
java事件监听机制(观察者设计模式的实际运用)
最新推荐文章于 2024-06-19 14:48:09 发布