關(guān)于回調(diào)函數(shù)
什么是回調(diào)函數(shù)?
- CallBack烧栋,先預(yù)定争便,未來會(huì)因?yàn)槟硞€(gè)行為觸發(fā)而callback的函數(shù)
回調(diào)函數(shù)有什么用
- 做好準(zhǔn)備媚污,響應(yīng)將會(huì)發(fā)生的某個(gè)事件
- 如響應(yīng)按鈕點(diǎn)擊事件邮弹、鼠標(biāo)指針hover事件
- 如延時(shí)加載(按需加載)
怎么使用
回調(diào)函數(shù)的使用主要包括:
- 注冊
- 觸發(fā)
- 響應(yīng)
所謂注冊黔衡,就是把某個(gè)行為(A),綁定到將會(huì)發(fā)生的另一個(gè)行為(B)上腌乡。觸發(fā)盟劫,就是B行為的發(fā)生;響應(yīng)与纽,就是A因?yàn)锽的發(fā)生而發(fā)生侣签。
舉個(gè)栗子。大臉貓和小丸子說急迂,“你要是吃我的小魚干硝岗,我就揍你”。這個(gè)過程就是注冊的過程袋毙。然后某一天小丸子吃了他的小魚干型檀,這個(gè)就是事件觸發(fā)。然后大臉貓把小丸子打了一頓听盖,這就是事件響應(yīng)胀溺。
訴諸代碼。
//定義個(gè)接口
public interface WarningCallback{
void beatu();
}
//實(shí)現(xiàn)接口的大臉貓的警告
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();
}
回調(diào)函數(shù)可能是這樣皆看。