监听器模式
最简单的例子。
举例子:小明坐汽车去高铁站这个行为,其中汽车是事件对象,它有站点等信息。监听者(小明看到到了高铁站,就下车,回调动作),事件源(一切的源头,包含汽车,通知下车等动作)。
如果用代码实现的话:那么就是三个类,一个事件源,一个事件本身,一个监听者。
首先事件本身,就是汽车,汽车有一个属性,name。也就是站名。
public class Bus {
//站点
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
监听器:就是满足了条件后执行的动作,比如,到站了(那肯定是要走下车的逻辑了)
/**
* \* @author: bear
* \* Date: 2022-04-22-17:39
* \* describe: 监听器本身。用来监听事件源头的,看看是否到站,如果到站了,就下车
*/
public class Listen {
// 事件监听器,执行之后的动作
public void getOffCar(Bus bus){
if (bus.getName().equals("高铁站")) {
System.out.println("高铁站到了,请乘客下车");
}
}
}
事件源头:源头肯定又事件本身,有监听器。比如汽车到站了,肯定要通知乘客下车,这个下车的动作是监听器做的。
public class Source {
public void notice(Listen listen,Bus bus){
listen.getOffCar(bus);
}
}
测试方法:
public static void main(String[] args) {
Listen listen = new Listen();
Bus bus = new Bus();
bus.setName("高铁站");//类比已经到了高铁站,车已经到了,那么就要通知乘客下车了
Source source = new Source();
source.notice(listen,bus);
}