回調函數

       學習編程的時候,經常會聽到別人提起回調函數,但自己對這個概念一直似懂非懂,所以今天打算好好學習整理一下回調函數。

     所謂回調,就是A類中調用B類中的某個方法C,然後B類中反過來調用A類中的方法D,D這個方法就叫回調方法。在c語言裏回調函數是用指針完成的,由於java沒有指針,我們用回調對象代替。下面,我們舉一個例子來描述一下回調的過程:

      送貨員有一些貨需要派送出去,但他不知道要什麼時候進行派送,所以他打電話問經理,然而經理這個時候在做大保健,就和送貨員說:等我把手頭上一億的項目忙完再說啦,你先去忙,等下可以發貨的時候我打電話給你。於是送貨員就繼續等待,3秒後,經理call了送貨員,送貨員開始發貨,整個過程結束。

      在上面這個例子中,送貨員就是A類,經理是B類,”經理通知送貨員“就是方法C,送貨員送貨就是方法D。下面我們用代碼實現一下:

//回調接口
Interface Callbackable{
pubilc void execute();
}
class A implements Callbackable{
private B b;
public A(B b){
this.b=b;
}
public void askManager(){
new Thread(new Runnable(){
@Override
public void run(){
b.callback(this);
}
});
doOtherThings();
 public void execute(){
   System.out.println("送貨去咯");
}
}
public void doOtherThings(){
System.out.println("學習");
}
}
class B{
public void callback(Callbackable c){
//大保健中...
for(int i=0;i<3;i++) 
   System.out.println("啊~");
c.execute();
}
}



     

發佈了25 篇原創文章 · 獲贊 4 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章