一.回调函数:所谓回调,就是客户程序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();// 回调儿子中的回调函数
}
}
四.运行结果:
板凳,瓜子准备,故事开始了……
妈妈我饿了
我知道了,等会,正在做饭
打开对讲机,通知儿子饭做好了
喂,儿子饭可以米西米西了