java事件監聽機制(觀察者設計模式的實際運用)
阿新 • • 發佈:2019-01-26
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;
}
}