Java回調函數實現案例

1、什麼是回調函數

        回調函數,是一個通過函數指針調用的函數。如果你把函數的指針(地址)作爲參數傳遞給另一個函數,當這個指針被用來調用其所指向的函數時,我們就說這是回調函數。在Java中,指針即所謂的引用。回調函數不是由該函數的實現方直接調用,而是在特定的事件條件發生時由另外的一方調用的,用於對該事件或條件進行響應。

        回調方法 是 任何一個 被 以該回調方法爲其第一個參數 的 其它方法 調用 的方法。很多時候,回調是一個當某些事件發生時被調用的方法。

2、應用場景

事件驅動機制

舉例:甲僱傭乙修車;然後甲就去做其他事情;乙完成後通知甲:車已修好,請來取。即甲沒必要一直等待乙修完車。

3、代碼示例

1、測試類

package com.callBack;
public class CallBckTest {

    public static void main(String[] args) {
        MainBusiness mainBusiness = new MainBusiness();

        System.out.println("*********具體實現類實現的回調方法_固定*********");
        mainBusiness.execute(new CallbackServiceImpl());

        System.out.println("*********匿名內部類實現的回調方法_靈活*********");
        mainBusiness.execute(new CallbackService() {
            public void callBackFunc() {
                System.out.println("匿名內部類回調函數開始執行...");
                System.out.println("匿名內部類回調函數結束執行...\n");
            }
        });
    }
}

2、業務類與方法 

package com.callBack;
public class MainBusiness {

    private CallbackService callback;

    public void execute(CallbackService callback) {
        this.callback = callback;
        callBack();
    }

    public void callBack() {
        callback.callBackFunc();
    }
}

3、回調函數接口 

package com.callBack;
//回調函數之接口與方法
public interface CallbackService {
    void callBackFunc();
}

4、回調函數實現類

package com.callBack;
public class CallbackServiceImpl implements CallbackService {
    @Override
    public void callBackFunc() {
        System.out.println("具體實現類回調函數開始執行...");
        System.out.println("具體實現類回調函數結束執行...\n");
    }
}

5、打印結果

*********具體實現類實現的回調方法_固定*********
具體實現類回調函數開始執行...
具體實現類回調函數結束執行...

*********匿名內部類實現的回調方法_靈活*********
匿名內部類回調函數開始執行...
匿名內部類回調函數結束執行...

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章