回調(diào)機(jī)制

模塊間的調(diào)用關(guān)系

在一個應(yīng)用系統(tǒng)中,無論使用何種語言開發(fā),必然會存在模塊之間的調(diào)用,調(diào)用的方式主要包含:

同步調(diào)用

同步調(diào)用是最基本也是最簡單的調(diào)用方式,類A的方法a在調(diào)用類B的方法b,會一直等待b方法執(zhí)行完成,方法a才進(jìn)行后續(xù)的代碼執(zhí)行。這種方式一般使用這種方式適用于方法b執(zhí)行的時間不長的情況下,因為如果方法b執(zhí)行的時間過長,方法a余下的代碼邏輯是無法執(zhí)行下去的,這樣會造成整個流程的阻塞

異步調(diào)用

異步調(diào)用是為了解決同步調(diào)用可能出現(xiàn)的阻塞問題,類A的方法a通過新起線程的方式調(diào)用類B的b方法,代碼接著直接繼續(xù)往下執(zhí)行,無需等待b方法的執(zhí)行結(jié)果。這樣無論方法b執(zhí)行時間多久,都不會阻塞方法a的執(zhí)行。但是這種方式下的調(diào)用關(guān)系,由于方法a無需等待方法b的執(zhí)行完成,如果方法a中需要使用到方法b的執(zhí)行結(jié)果,必須通過一定的方式對方法b的執(zhí)行結(jié)果進(jìn)行監(jiān)聽。在Java中,可以使用Future+Callable的方式實現(xiàn)

回調(diào)

回調(diào)的思想在于:

  1. 類A的方法a調(diào)用類B的b方法
  2. 類B的b方法執(zhí)行完畢主動調(diào)用類A的callback方法

這樣的調(diào)用方式是一種雙向的調(diào)用方式,其核心是回調(diào)方將本身即this傳遞給調(diào)用方,這樣調(diào)用方就可以在調(diào)用完畢之后告訴回調(diào)方它想要的信息。

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

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容