关于回调函数
什么是回调函数?
- CallBack,先预定,未来会因为某个行为触发而callback的函数
回调函数有什么用
- 做好准备,响应将会发生的某个事件
- 如响应按钮点击事件、鼠标指针hover事件
- 如延时加载(按需加载)
怎么使用
回调函数的使用主要包括:
- 注册
- 触发
- 响应
所谓注册,就是把某个行为(A),绑定到将会发生的另一个行为(B)上。触发,就是B行为的发生;响应,就是A因为B的发生而发生。
举个栗子。大脸猫和小丸子说,“你要是吃我的小鱼干,我就揍你”。这个过程就是注册的过程。然后某一天小丸子吃了他的小鱼干,这个就是事件触发。然后大脸猫把小丸子打了一顿,这就是事件响应。
诉诸代码。
//定义个接口
public interface WarningCallback{
void beatu();
}
//实现接口的大脸猫的警告
public class BigFaceCatWarning implements WarningCallback{
@Override
public void beatu() {
System.out.println("i beat u");
}
}
//小丸子
public class Maruko{
private WarningCallback callback;
public void registerCallback(WarningCallback callback) {
this.callback = callback;
}
public void eatDriedFish(){
System.out.println("I eat fish");
if ( callback != null ){
callback.beatu();
}
}
}
//main
public static void main(String[] args) {
Maruko maruko = new Maruko();
// register
maruko.registerCallback(new BigFaceCatWarning());
maruko.eatDriedFish();
}
回调函数可能是这样。