新聞中心
所謂回調(diào),就是客戶程序C調(diào)用服務(wù)程序S中的某個(gè)函數(shù)A,然后S又在某個(gè)時(shí)候反過(guò)來(lái)調(diào)用C中的某個(gè)函數(shù)B,對(duì)于C來(lái)說(shuō),這個(gè)B便叫做回調(diào)函數(shù)。例如Win32下的窗口過(guò)程函數(shù)就是一個(gè)典型的回調(diào)函數(shù)。一般說(shuō)來(lái),C不會(huì)自己調(diào)用B,C提供B的目的就是讓S來(lái)調(diào)用它,而且是C不得不提供。由于S并不知道C提供的B姓甚名誰(shuí),所以S會(huì)約定B的接口規(guī)范(函數(shù)原型),然后由C提前通過(guò)S的一個(gè)函數(shù)R告訴S自己將要使用B函數(shù),這個(gè)過(guò)程稱為回調(diào)函數(shù)的注冊(cè),R稱為注冊(cè)函數(shù)。Web Service以及Java的RMI都用到回調(diào)機(jī)制,可以訪問(wèn)遠(yuǎn)程服務(wù)器程序。(這段是網(wǎng)上抄的,摘自http://hi.baidu.com/f117_n/blog/item/2f52e612347cd3c8c3fd78ad.html)

網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)公司!專注于網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開(kāi)發(fā)、小程序制作、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了巴中免費(fèi)建站歡迎大家使用!
重新舉個(gè)例子來(lái)理解回調(diào):
我遇到了一個(gè)問(wèn)題,便用家里的固話打給我的同事,他說(shuō)不太清楚,稍后給我回復(fù)。我說(shuō)我一會(huì)要出去,你想到了之后打我手機(jī)吧。沒(méi)過(guò)多久,我同事就打手機(jī)過(guò)來(lái)告訴了我答案。
下面是代碼:
1、先定義一個(gè)接口,規(guī)定回答問(wèn)題的條件是打我手機(jī)
- public interface CallBack {
- //通過(guò)手機(jī)回答
- void CallIphone();
- }
2、調(diào)用者(我):
- public class Me {
- public void askQuestion(){
- System.out.println("撥打固話問(wèn)1+1=?");
- }
- }
3、被調(diào)用者(同事):
- public class You {
- public void answer(CallBack callBack){
- //進(jìn)行回調(diào)
- callBack.CallIphone();
- }
- public static void main(String[] args) throws InterruptedException {
- new Me().askQuestion();
- Thread.sleep(3000);
- new You().answer(new CallBack() {
- //實(shí)現(xiàn)接口,即回答問(wèn)題的方式
- public void CallIphone() {
- System.out.println("撥打手機(jī)回答等于2");
- }
- });
- }
- }
4、顯示結(jié)果
撥打固話問(wèn)1+1=?
撥打手機(jī)回答等于2
代碼很簡(jiǎn)單,理解也很膚淺,希望對(duì)大家有用。
分享文章:Java回調(diào)函數(shù)的理解
分享網(wǎng)址:http://www.5511xx.com/article/cdggigi.html


咨詢
建站咨詢
