Java回(未)调(完)机(成)制(防搜)

本文参考文章Java回调机制解读


1. 回调概念

回调,简要概括为:A类的a方法调用B类的b方法,b方法执行完成后,B类主动调用A类的callback方法,将执行结果告知A类。A类为调用方,B类为被调用方,被调用方主动将结果告知调用方的过程,称为回调。

2. 一般例子(无回调机制)

先看一个没有使用回调的例子,老师向学生提出问题,学生解答,老师不去处理学生解答结果。

2.1 学生类(被调用方)

Student.java代码如下

public class Student {
    public void resolveProblem() {
        try {
            Thread.sleep(2000); // 模拟解答过程所耗费的时间
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        System.out.println("student worked out.");
    }
}
2.2 老师类(调用方)

Teacher.java代码如下:

public class Teacher{
    private Student student;
    public Teacher(Student student) {
        this.student = student;
    }
    public void askProblem() {
        new Thread() {
            public void run() {
                student.resolveProblem();
            }
        }.start(); 
        System.out.println("teacher already asked the student.");
    }
}
2.3 测试类

Test1.java代码如下:

public class Test1 {
    public static void main(String[] args) {
        Student stupid = new Student();
        Teacher Tony = new Teacher(stupid);
        Tony.askProblem();
    }
}

运行结果如下:

teacher already asked the student.
student worked out.(2s后打印结果)

可以看到,tony老师问学生stupid问题后,没有管学生怎么解答问题,就做自己的事情(用打印一句话来模拟)。

3. 回调例子

在一般例子中,如果学生得到结果后,试图将结果告知给老师,则可以采用回调机制来实现。
(未完成)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值