监听器大致的组件分为三部分
//事件源
class TPerson{
//事件监听器
TPersonListener tPersonListener;
void eat(){
if (tPersonListener!=null) {
//注意写法 事件源调监听器 监听器调用监听器方法 监听器方法传入封装的监听的事件 监听事件封装事件源
tPersonListener.doEat(new Event(this));
}
}
void run(){
if (tPersonListener!=null) {
tPersonListener.doRun(new Event(this));
}
}
//注册监听器
void registerListener(TPersonListener tPersonListener){
this.tPersonListener=tPersonListener;
}
}
//监听器
interface TPersonListener{
void doEat(Event person);
void doRun(Event person);
}
//事件对象封装事件源(被监听对象)
class Event{
TPerson person;
public Event(TPerson source) {
this.person = source;
}
public TPerson getPerson() {
return person;
}
public void setPerson(TPerson person) {
this.person = person;
}
}