监听的实体类
public class Person {
private String name;
private PersonListener listener;
//注册监听器
public void registerListener(PersonListener listener){
this.listener = listener;
}
public Person(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public void eat(){
System.out.println("开始吃饭了..........");
if (listener!=null){
listener.listenEat(new EventArgs(this));
}
}
public void run(){
System.out.println("开始跑步了........");
if (listener!=null){
listener.listenRun(new EventArgs(this));
}
}
}
监听器
public interface PersonListener {
void listenEat(EventArgs e);
void listenRun(EventArgs e);
}
事件参数对象
public class EventArgs {
public EventArgs(Object source) {
this.source = source;
}
private Object source;
public Object getSource(){
return source;
}
}
测试类
public class Demo {
public static void main(String[] args) {
PersonListener listener = new PersonListener() {
@Override
public void listenEat(EventArgs e) {
Person source = (Person) e.getSource();
System.out.println("监听" + source.getName() + "吃饭");
}
@Override
public void listenRun(EventArgs e) {
Person source = (Person) e.getSource();
System.out.println("监听" + source.getName() + "跑步");
}
};
Person zhangsan = new Person("张三");
zhangsan.registerListener(listener);
zhangsan.eat();
zhangsan.run();
Person lisi = new Person("李四");
lisi.registerListener(listener);
lisi.eat();
lisi.run();
}
}