监听器模式
Posted howlet
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了监听器模式相关的知识,希望对你有一定的参考价值。
javaWeb中的Listener中涉及到了监听器模式,所以回来补充一下
1. 监听器模式(Listener Pattern)
监听器模式用来监听某个对象发生的事件,当此对象发生被监听的事件后,监听器的某个方法将被执行,其主要组成有: 事件源,事件监听器,事件对象
2. 流程
监听器模式很简单,直接看代码就能理解,这里举例监听小狗的玩和学习事件
2.1 事件对象
public class Event {
// 存放事件源的引用
Object object;
public Event(Object object) {
super();
this.object = object;
}
public Object getObject() {
return object;
}
}
2.2 事件监听器
狗的监听器接口
public interface DogListener {
public void playListener(Event event);
public void studyListener(Event event);
}
狗监听器的实现类
package listenerpatten;
public class MyDogListener implements DogListener {
@Override
public void playListener(Event event) {
System.out.println("监听器:监听到" + event.getObject().getClass().getName() + "在玩");
}
@Override
public void studyListener(Event event) {
System.out.println("监听器:监听到" + event.getObject().getClass().getName() + "在学习");
}
}
2.3 事件源
public class Dog {
private MyDogListener myDogListener;
public void setDogListener(MyDogListener myDogListener) {
this.myDogListener = myDogListener;
}
public void play(){
System.out.println("Dog: i am playing");
Event event = new Event(this);
myDogListener.playListener(event);
}
public void study(){
System.out.println("Dog: i am studying");
Event event = new Event(this);
myDogListener.studyListener(event);
}
}
2.4 测试类
public class test {
public static void main(String[] args) {
Dog dog = new Dog();
MyDogListener myDogListener = new MyDogListener();
dog.setDogListener(myDogListener);
dog.play();
dog.study();
}
}
Dog: i am playing
监听器:监听到listenerpatten.Dog在玩
Dog: i am studying
监听器:监听到listenerpatten.Dog在学习
以上是关于监听器模式的主要内容,如果未能解决你的问题,请参考以下文章
Java设计模式补充:回调模式事件监听器模式观察者模式(转)
设置onclick侦听器在android中无法从一个片段移动到另一个活动[重复]