IT文檔中總出現(xiàn)的 hooks 是什么 鉤子 回調(diào)

本文已收錄在Github,關(guān)注我,緊跟本系列專欄文章,咱們下篇再續(xù)!

  • ?? 魔都架構(gòu)師 | 全網(wǎng)30W技術(shù)追隨者
  • ?? 大廠分布式系統(tǒng)/數(shù)據(jù)中臺(tái)實(shí)戰(zhàn)專家
  • ?? 主導(dǎo)交易系統(tǒng)百萬(wàn)級(jí)流量調(diào)優(yōu) & 車聯(lián)網(wǎng)平臺(tái)架構(gòu)
  • ?? AIGC應(yīng)用開發(fā)先行者 | 區(qū)塊鏈落地實(shí)踐者
  • ?? 以技術(shù)驅(qū)動(dòng)創(chuàng)新,我們的征途是改變世界!
  • ?? 實(shí)戰(zhàn)干貨:編程嚴(yán)選網(wǎng)

0 前言

引用某乎上著名的示意圖:

1 簡(jiǎn)單理解

就像一些外來(lái)的鉤子,在源代碼之間鉤取一些信息,當(dāng)捕捉到感興趣的事時(shí),就攔截下來(lái),讓自己的代碼執(zhí)行一下,處理一下這個(gè)信息,然后再放出去繼續(xù)之前的進(jìn)程。

就可在不改變?cè)创a情況下,做些別的事,如監(jiān)控、分析。

2 專業(yè)理解

在計(jì)算機(jī)編程中,術(shù)語(yǔ)“鉤子”涵蓋了一系列技術(shù),這些技術(shù)通過(guò)截獲在軟件組件之間傳遞的函數(shù)調(diào)用或消息或事件來(lái)更改或增強(qiáng)操作系統(tǒng),應(yīng)用程序或其他軟件組件的行為。 處理此類攔截的函數(shù)調(diào)用,事件或消息的代碼稱為“掛鉤”。

回調(diào)這個(gè)東西在各個(gè)語(yǔ)言/框架中的具體形式也不同,如 Java 中 Listener 基本指回調(diào)(但也可能是 Listener 本意,易混淆),只是因?yàn)?Java 里用于構(gòu)造回調(diào)的接口叫 xxxListener。

在已經(jīng)可以正常運(yùn)作的程序中額外添加流程控制可以實(shí)現(xiàn),但不限于獲取所hook流程中特定時(shí)刻的各種數(shù)據(jù),修改數(shù)據(jù),修改程序流程比如,在一家公司,所有采購(gòu)事宜只需財(cái)務(wù)和專員協(xié)調(diào)溝通即可完成?,F(xiàn)在公司決定下個(gè)hook, 采購(gòu)事宜需總經(jīng)理簽字批準(zhǔn)才可繼續(xù)執(zhí)行。至于總經(jīng)理怎么hook操作:是隨便簽字,還是搞潛規(guī)則,或者有自己的想法和安排來(lái)進(jìn)行新的采購(gòu)事項(xiàng),這就屬于hook的具體實(shí)現(xiàn)。

本文由博客一文多發(fā)平臺(tái) OpenWrite 發(fā)布!

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

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

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