美文网首页
Java回调实现

Java回调实现

作者: 黑马程序员武汉校区 | 来源:发表于2019-08-22 08:59 被阅读0次

    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
    

    四、 后序

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

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

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

    相关文章

      网友评论

          本文标题:Java回调实现

          本文链接:https://www.haomeiwen.com/subject/kqegsctx.html