一.回調函數:所謂回調,就是客戶程序CLIENT調用服務程序SERVER中的某個函數SA,然後SERVER又在某個時候反過來調用CLIENT中的某個函數CB,對於CLIENT來說,這個CB便叫做回調函數。
二.回調的故事內容:有一天晚上兒子餓了,告訴她媽媽餓了(註冊),得知飯沒有做好給她媽一個對講機。過了一段時間,兒子用對講機call媽媽(調用媽媽的方法),媽媽call回告訴兒子飯做好了(回調兒子的方法)。看代碼:
三.代碼:
/*
* @author iSunday_Leo
*/
public class Me implements Phone {
public void phone() {// 回調函數
System.out.println("喂,兒子飯可以米西米西了");
}
public static void main(String[] args) {
System.out.println("板凳,瓜子準備,故事開始了……");
Mom mom = new Mom();
System.out.println("媽媽我餓了");
mom.hungry(new Me());// 註冊“我”
mom.askIsOK();// 調用媽媽中的方法
}
}
/*
* @author iSunday_Leo
*/
public interface Phone {
public void phone();
}
/*
* @author iSunday_Leo
*/
public class Mom {
private Phone mySonPhone;
public void hungry(Phone callIn) {
System.out.println("我知道了,等會,正在做飯");
mySonPhone = callIn;
}
public void askIsOK() {
System.out.println("打開對講機,通知兒子飯做好了");
mySonPhone.phone();// 回調兒子中的回調函數
}
}
四.運行結果:
板凳,瓜子準備,故事開始了……
媽媽我餓了
我知道了,等會,正在做飯
打開對講機,通知兒子飯做好了
喂,兒子飯可以米西米西了