详解详解Java的回调机制的回调机制
最近学习java,接触到了回调机制(CallBack)。初识时感觉比较混乱,而且在网上搜索到的相关的讲解,本文介绍
了Java的回调机制,有兴趣的同学可以了解一下。
模块之间总是存在这一定的接口,从调用方式上看,可以分为三类:同步调用、回调和异步调用。下面着重详解回调机制。
1. 概述概述
Java 中的回调机制是一个比较常见的机制,只是有可能在你的程序中使用得比较少,在一些大型的框架中回调机制随处可
见。本文就通过一些具体的实例,慢慢走近 Java 的回调机制。
2.回调回调
所谓回调:就是A类中调用B类中的某个方法C,然后B类中反过来调用A类中的方法D,D这个方法就叫回调方法。实际在使用
的时候,也会有不同的回调形式,比如下面的这几种。
2.1 同步回调同步回调
这里我假设这样的一种情况。
A 公司的总监 B 跟他的下属(项目经理 C)说要做一个调研,不过不用 C 自己亲力亲为。可以让经理 C 去安排他下面的程序
员 D 去完成。经理 C 找到了程序员 D,并告诉他,现在要完成一个调研任务。并且把调研的结果告诉经理 C。如果有问题,
还是要继续的。 因为这里是 C 让 D 去做一件事情,之后 D 还是要将结果与 C 进行沟通。这样就是回调的模型了。下面是一
般回调的类图:
首先我们要有一个回调的接口 CallbackInterface
CallbackInterface.java
public interface CallbackInterface {
public boolean check(int result);
}
背景里,程序员 D 是要将结果与项目经理 C 进行沟通的,所以这里项目经理需要实现上面的回调接口:
Manager.java
public class Manager implements CallbackInterface {
private Programmer programmer = null;
public Manager(Programmer _programmer) {
this.programmer = _programmer;
}
/**
* 用于 Boss 下达的委托
*/
public void entrust() {
arrange();
}
// 进行安排下属进行 study 工作
private void arrange() {
System.out.println("Manager 正在为 Programmer 安排工作");
programmer.study(Manager.this);