java接口回調

什麼是回調?

如上一篇文章所說,從調用方式上看,能夠分爲三類同步調用、異步調用和回調。回調是一種雙向的調用模式,也就是說,被調用的接口被調用時也會調用對方的接口,例如A要調用B,B在執行完又要調用A。html

回調的用途?(摘自http://www.codeceo.com/articl...

回調通常用於層間協做,上層將本層函數安裝在下層,這個函數就是回調,而下層在必定條件下觸發回調。例如做爲一個驅動,是一個底層,他在收到一個數據時,除了完成本層的處理工做外,還將進行回調,將這個數據交給上層應用層來作進一步處理,這在分層的數據通訊中很廣泛。(表示沒怎麼理解)java

回調的例子

原理:首先建立一個回調對象,而後再建立一個控制器對象,將回調對象須要被調用的方法告訴控制器對象,控制器對象負責檢查某個場景是否出現或某個條件是否知足,當知足時,自動調用回調對象的方法。異步

例如老闆A對員工B說,我如今交給你一個任務,而且我把個人電話號碼給你,你一旦完成任務就給我打電話。函數

詳細的代碼以下:測試

一、建立一個回調接口
public interface CallBack
{this

public void doEvent();

}
二、建立回調接口的實現類,此例中,員工幹完活後還要幹什麼事情是老闆說了算的。
public class Boss implements CallBack
{code

public void doEvent()
{
    System.out.println("打電話給老闆,告知已經完成工做了");
}

}
三、建立控制類,也就是本例中的員工對象,他要持有老闆的地址(即回調接口)
public class Employee
{htm

CallBack callBack;
public Employee(CallBack callBack)
{
    this.callBack=callBack;
}
public void doWork()
{
    System.out.println("玩命幹活中....");
    callBack.doEvent();
}

}
四、測試類
public class TestMain
{對象

public static void main(String[] args)
{
    //建立控制器對象,將提供給他的回調對象傳入
    Employee employee=new Employee(new Boss());
    //啓動控制器對象運行
    employee.doWork();
}

}接口

相關文章
相關標籤/搜索