(2,什么是回调函数?
1,为什么要用回调函数?)请先忽略这两个问题。
我很讨厌我问一个问题,然后先给我来一堆的定义,或者解释。(就像我问别人什么是微分?别人给我一堆概念,(心里飘过。。),我还不如自己看书找定义呢,还需要你告诉我。)我正是因为看不明白定义,所以想让别人帮我简化一下,找到什么是理解这个定义的关键。(也就是你是怎么理解这个定义的,怎么从复杂逻辑到简单逻辑)。我明白简单逻辑之后,再自己思考,从简单到复杂。
总结:我想要的是你是怎么把复杂问题抽象成简单问题的。
我找了很多csdn上的文章,大部分都是一个套路:
第一步:什么是。。?
例如:什么是回调函数?给了一堆类似定义的东西。
第二步:是什么?
回调函数是?给了一堆文字描述的例子。
第三步:怎么解决?
一个代码例子。(也不知道作者自己写完了以后看不看,反正是对的,我想说的是,作者写的例子,写完之后,过几天作者自己都不知道为什么这么写(反正是对的),作者会想为什么写的这么差劲。)
中国移动外包业务给开发商就是一个回调的例子。
中国移动外包业务是因为它需要别人的服务。开发商完成的业务要告诉中国移动使用。这就是回调。
开发商完成了业务-----》告诉中移动(调用中移动)-----》中移动收到之后(使用该业务)调研开发商提供业务。
(最后也是网上盛传的。A类,B类,A调用B中的方法,B调用A中的方法。)
interface outsourcePro{ //外包出去的业务,就是要回掉的函数。
public void problem();
}
class chinaMobile{ //外包商,中国移动
private outsourcePro outs;
public chinaMobile(outsourcePro out){
this.outs = out;
work();
}
public void work(){ //中国移动,外包出去的业务。
outs.problem();
}
}
class outsourcingMen implements outsourcePro { //外包商,为外包提供商提供服务。
private chinaMobile chinaMobile;
public outsourcingMen (){ //做完工作交给谁?
chinaMobile = new chinaMobile(this);
}
public void problem() {
System.out.println("外包业务完成!");
}
}
public class event {
public static void main(String[] args) {
new outsourcingMen();
}
}
大神请您以后:
先写实际工作背景中的代码。
然后再写一下您的小例子。