回调

2017-07-27  本文已影响21人  是夏莞也是CiCi

原味链接:认识回调 转载请注明出处~

回调是啥呢,首先想想为啥叫回调呢,哪回了?调啥了?中国汉字博大精深,如果一篇博客说了一堆blabla的但是你没有理解为啥叫回调,那算是白看了。

回调怎么用

先来看一下模板

interface CallBack {
    public void execute();
}
class A implements CallBack {
    @override
    public void execute(){
        xxx...//想怎么实现就怎么实现好啦
    }
}
class B {
    CallBack callback; //有一个CallBack的引用
    b(){
        callback.execute();    //有一个方法是调用了接口的方法,那这个方法就被回调了吗,就叫回调方法了
    }
}

回调有啥用

举个例子,我们向外提供某个服务b,有好多业务方都需要调用我们的服务,调用后以某种方式展示在他们的业务上。那这个时候我们把我们服务的源代码拷给他们挨个提供服务吗?大可不必,我们提供一个方法b(),b()调用回调方法,当业务方调用我们服务的b()的时候,我们的方法执行后直接以回调的形式将结果反馈给业务方。

举个具体的例子,小红很有钱,买了个计算器,可以提供计算服务caculate()。不想自己算的小明想调用这个方法来写作业work(),糊涂的老奶奶也想调用这个方法来算账work(),这样只要小明和老奶奶都调用calculate()方法,小红的caculate()调用小明和老奶奶统一使用接口的work()方法,小红可以给多个不同需求的业务提供服务了。
那为啥不直接调用小红的calculate()方法,得到一个返回值不就行了吗?那小明和老奶奶还要了解小红的这个方法调用返回的结果都是什么,怎么处理。实际中了解另一个业务的参数返回值啊这些都比较麻烦,回调做到了真正的解耦。只要小明和老奶奶按照统一接口定义方法的格式定义回调方法,那小红就可以提供一站式服务。(个人理解)

如果你木有看懂这篇文章,可以去看Bro__超JAVA回调机制(CallBack)详解,感觉讲的很清晰~ 强烈推荐~

参考文章

Bro__超JAVA回调机制(CallBack)详解
That's all,enjoy it~
欢迎访问博主个人博客:http://kongdehui.com/ ~~~

上一篇下一篇

猜你喜欢

热点阅读