网上回调都是例子比较多,本文只记用法
两个接口,一个是Boss的回调接口,一个是员工的执行接口
Boss的接口
/**
* 回调的方法,boss实现
*/
public interface CallBack {
// 完成
void complete(String content);
}
员工的接口
/**
* 员工接口
*/
public interface GetJob {
/**
* 接受任务
*/
void getJob(CallBack callBack);
/**
* 执行任务
*/
void performWork();
}
boss的实现类
public class Boss implements CallBack {
/**
* 发布任务,员工接收任务
*/
public void publishJob(GetJob getJob) {
getJob.getJob(this);
}
/**
* 员工完成任务后boss收到通知,并处理逻辑、
*/
@Override
public void complete(String content) {
System.out.println("Boss 收到消息 :" + content);
}
}
员工的实现类
public class Employee implements GetJob {
private CallBack callBack;
@Override
public void getJob(CallBack callBack) {
this.callBack = callBack;
}
@Override
public void performWork() {
try {
Thread.sleep(1000);
callBack.complete("Employee 完成工作");
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
测试类,执行~
public class Main {
public static void main(String[] args) {
Employee employee = new Employee();
Boss boss = new Boss();
// 发布任务
boss.publishJob(employee);
// 执行任务
employee.performWork();
}
}
代码注释写得比较多,多写几遍就理解了