2011-05-29 76 views
0

沒有冒犯,但我可能會問一個奇怪的問題。我是一名初學者,學習了先進的面向對象程序,並且對一些概念感到困惑。即將到來。這可能是荒謬的。但是有人能夠準確而正確地告訴我什麼是回調文學的意思嗎?它與我們用於信息隱藏的C++中的代理類有何不同。提前道歉,如果我誤用了術語。代理功能與回撥的區別

回答

0

Wikipedia

回調是可執行代碼的引用,或一段可執行代碼,即作爲參數傳遞給其他代碼通過。

至於代理類,看到this question

這是兩回事。代理類的一個實例可以用作回調函數,但這是我可以在它們之間看到的唯一關係。

0

回調的想法是開始一些行動,然後做其他事情,直到行動完成。

真實世界的一個例子是打電話給水管工進行維修。水管工說他們目前正在工作現場,並且無法在第二天看到他們的計劃。然而,水管工說他們將在辦公室後,並能夠檢查他們的時間表。水管工然後承諾,一旦他們在辦公室並能夠檢查時間表,就會給你打電話。然後,您可以坐在電話旁邊等待回電話(阻止回電),或者讀書或畫房子,直到水管工回電(延遲迴撥)。

在C中,回調函數是指定爲回調的函數體。函數的地址(一個函數指針)被提供給被調用的函數以執行某種動作。動作完成後,調用回調函數來執行某些操作,通常是某種形式的清理和/或通知。

正常情況下,當一個函數被調用來啓動某個動作,然後在動作完成並且結果已知之前立即返回調用者時,將使用回調函數。該回調用作在啓動的動作完成時通知動作結果的一種方式。

回調的另一種形式是爲事件註冊一個函數,以便事件發生時函數將被調用來執行某些操作。因此,您可以指定收到鼠標點擊事件時的回調。

代理類是充當類的接口的類。你可以把代理類看作類似於爲演員做危險事情的特技雙人組。或股東會議的代理人是爲實際持股人履行股東特定職責的人或組織。

回調不是代理,儘管代理可以使用回調作爲執行其代理職責所需的功能的一部分。