Java回调实现

Java回调实现

    1. 什么是回调
    1. 回调核心思想
    1. 案例代码实现
    1. 后序

一、什么是回调

开发过程当中存在某种特殊的业务需求,例如:


回调生活实例.PNG

描述:

  1. 老板给员工下达了工作任务之后,就去做其他事情了。(此时此 刻,老板不知道需要多长时间完成,不会一直等着,而是做自己其他事情)
  2. 员工接收到任务之后,按照要求完成任务
  3. 当员工任务完成的时候,主动的回馈给老板工作情况。
  4. 当员工回馈工作情况的时候,此时此刻老板还在做另外的事情

二、回调的核心思想

核心思想图解:

回调的核心思想.PNG

描述:

  1. Boss类 下达任务的方法 调用 Employee类的 完成任务方法

  2. 当Employee类的 完成任务方法执行完毕之后,会主动的调用 老板 Boss类的 callBack() 方法

三、案例代码实现

01. 回调的接口 CallBack

/**
 * 定义回调的接口,只需要定义一个报告反馈的方法即可
 */
public interface CallBack {

    // 定义一个报告 反馈的方法
    public void baoGao(int num);

}

02. 老板类 Boss

/***
 * 定义一个老板Boss类,需要去实现回调的接口 CallBack
 */
public class Boss implements CallBack {

    // 定义下达任务的方法.需要在下达任务的当中调用 员工 完成任务的方法
    public void xiaDaRenWu(Employee e) {
        // 当下达任务的时候给出提示.等待着某位员工去完成任务
        System.out.println("Boss下达任务了,等待员工去完成...");
        // 员工去完成任务
        // 由于Boss实现了接口,可以将Boss的对象 this作为参数传递
        e.wanChengRenWu(this);
    }

    // 在报告的方法当中.需要去调用 员工信息
    @Override
    public void baoGao(int num) {
        System.out.println("员工报告回馈信息: " + num);
    }

}

03. 员工抽象类 Employee

/**
 * 员工类:由于不知道每个员工的完成方式,将员工定义为抽象
 */
public abstract class Employee {

    // 员工当中完成任务的操作
    public abstract void wanChengRenWu(CallBack callBack);
}

04. 具体员工类 KoBe

/**
 * 定义具体的员工类KoBe.完成员工任务的操作
 */
public class KoBe extends Employee {

    @Override
    public void wanChengRenWu(CallBack callBack) {
        // 模拟完成工作的情况。需要消耗一定的时间
        try {
            Thread.sleep(4000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        // 回调操作,反馈给领导情况
        callBack.baoGao(666);
    }

}

05. 测试类 Test

/***
 * 定义测试类完成 测试.创建老板Boss的对象以及 员工对象
 */
public class Test {

    public static void main(String[] args) {

        // 老板的对象
        Boss b = new Boss();
        // 具体员工的对象
        KoBe k = new KoBe();
        // 老板下达任务
        b.xiaDaRenWu(k);

    }

}

最终运行效果(“员工报告反馈信息”等4秒后 才会出现)

Boss下达任务了,等待员工去完成...
员工报告回馈信息: 666

四、 后序

这个例子是一个典型的体现接口作用的例子,有些朋友可能不太明白接口的好处.

当各位朋友不太明白接口好处的朋友可以重点看一下这个例子,多多理解。

总结起来,回调的核心就是 回调方将本身即this传递给调用方.这样调用方就可以在调用完毕之后告诉回调方它想要知道的信息。

你可能感兴趣的:(Java回调实现)