換個角度看待回調

關於回調,在網上有很多的說法,大多解釋什麼是“回調”,以及回調的作用,一般從異步調用或者流程控制多態等應用角度進行說明。所有我們來聊點其它的,說說在技術層面的事。

首先,來看一下普通函數和回調函數的區別。

普通函數的參數是其它的基本類型或者引用類型。

回調函數的參數除了其它的基本類型或者引用類型,還必須有一個調用這個函數的引用類型作爲參數。

所以,區分普通函數和回調函數的方式就是看是否包含了一個調用這個函數的引用類型的參數。

這個特殊的參數會帶來什麼樣的改變?

唯一的變化就是,可以在回調函數裏面通過這個特殊參數調用“原始類(調用回調函數的方法鎖所在的類)”的所有方法。

那麼,這有什麼用?

假設如下場景:

有一個類A,A當中有1,2,3,4,5,6六個方法。本來的執行順序是1,2,3,4,5,6。這時在執行到3的時候調用了B的某個回調方法,這個回調方法最後指定調用A的方法6,這時4,5實際是沒有執行的。

另外一個場景:

同樣一個類A,A當中有1,2,3,4,5,6六個方法。在執行到3的時候調用了B的某個回調方法,這個回調方法根據運行結果的不同分別調用A的4,5,6。

所以,所謂回調,就是提供了一種調用“對回調函數進行調用的類”的方式。這種方式能夠一定程度上改變業務的流程。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章