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);
    }
}