Java回调实现

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

一、什么是回调
开发过程当中存在某种特殊的业务需求,例如:

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

描述:
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传递给调用方.这样调用方就可以在调用完毕之后告诉回调方它想要
知道的信息。

  • 9
    点赞
  • 51
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值