java 實現回調機制

簡單的來說,回調就是任務的方法不是在自己類當中調用,而是將自身對象的引用交給其他對象,由其他對象的條件觸發這個方法,這個方法就稱之爲回調方法,,然後這些任務有些信息是從調用者(任務的執行者不是自己)那裏獲得的,或者是否執行該方法依賴的條件由其他類當中的信息決定,所以不能自己調用自己的方法執行,而是將自己交給調用者,自己的方法在調用者中執行。


比如一個時間任務的例子,該任務當中有超時處理方法,該任務被註冊到另一個類當中,另一個類循環檢測超時,超時的收調用超時處理方法,這就是一個典型的回調方法

      

public interface Work {

    public void task();
}
public class Classwork implements Work {

    @Override
    public void task() {
        System.out.println("做課堂作業");
    }

}

public class Homework implements Work {

    @Override
    public void task() {
        System.out.println("做家庭作業");
    }

}

public class Teacher {

    private String teacherName;

    public String getTeacherName() {
        return teacherName;
    }

    public void setTeacherName(String teacherName) {
        this.teacherName = teacherName;
    }

    public void task(Work work) {
        System.out.println(teacherName + "分配");
        // 回調A中的函數
        work.task();
    }
}

public class Test {

    public static void main(String[] args) {
        Homework homework = new Homework();
        Classwork classwork = new Classwork();
        Teacher b = new Teacher();
        b.setTeacherName("蜀僧");
        b.task(homework);
        b.task(classwork);
    }
}


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