回調


原味鏈接:認識回調 轉載請注明出處~

回調是啥呢,首先想想為啥叫回調呢,哪回了?調啥了?中國漢字博大精深,如果一篇博客說了一堆blabla的但是你沒有理解為啥叫回調,那算是白看了。

回調怎么用

先來看一下模板

  • 首先,有一個接口
interface CallBack {
    public void execute();
}
  • 然后,要有類來實現(xiàn)這個接口
class A implements CallBack {
    @override
    public void execute(){
        xxx...//想怎么實現(xiàn)就怎么實現(xiàn)好啦
    }
}
  • 再然后,還得有個類,這里面有個方法b()調用了剛才的execute()方法,那當A中的一個指向b的引用調用b()的時候,是不是就有調用了A中的execute()方法呀,這不是就回調了嘛~
class B {
    CallBack callback; //有一個CallBack的引用
    b(){
        callback.execute();    //有一個方法是調用了接口的方法,那這個方法就被回調了嗎,就叫回調方法了
    }
}

回調有啥用

舉個例子,我們向外提供某個服務b,有好多業(yè)務方都需要調用我們的服務,調用后以某種方式展示在他們的業(yè)務上。那這個時候我們把我們服務的源代碼拷給他們挨個提供服務嗎?大可不必,我們提供一個方法b(),b()調用回調方法,當業(yè)務方調用我們服務的b()的時候,我們的方法執(zhí)行后直接以回調的形式將結果反饋給業(yè)務方。

舉個具體的例子,小紅很有錢,買了個計算器,可以提供計算服務caculate()。不想自己算的小明想調用這個方法來寫作業(yè)work(),糊涂的老奶奶也想調用這個方法來算賬work(),這樣只要小明和老奶奶都調用calculate()方法,小紅的caculate()調用小明和老奶奶統(tǒng)一使用接口的work()方法,小紅可以給多個不同需求的業(yè)務提供服務了。
那為啥不直接調用小紅的calculate()方法,得到一個返回值不就行了嗎?那小明和老奶奶還要了解小紅的這個方法調用返回的結果都是什么,怎么處理。實際中了解另一個業(yè)務的參數(shù)返回值啊這些都比較麻煩,回調做到了真正的解耦。只要小明和老奶奶按照統(tǒng)一接口定義方法的格式定義回調方法,那小紅就可以提供一站式服務。(個人理解)

如果你木有看懂這篇文章,可以去看Bro__超JAVA回調機制(CallBack)詳解,感覺講的很清晰~ 強烈推薦~

參考文章

Bro__超JAVA回調機制(CallBack)詳解
That's all,enjoy it~
歡迎訪問博主個人博客:http://kongdehui.com/ ~~~

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容