您的位置:首页 > 编程语言 > Java开发

java回调机制的理解

2015-11-24 20:01 453 查看
1.回调机制

回调机制把工作流内的某个功能,按照约定的接口暴露给外部使用者,为外部使用者提供数据,或要求外部使用者提供数据。例子:A类中调用B类中的某个方法C,然后B类中反过来调用A类中的方法D,D这个方法就叫回调方法。

2.应用场景举例:

有一位老板很忙,他没有时间盯着员工干活,然后他告诉自己的雇员,干完当前这些事情后,告诉他干活的结果。这个例子其实是一个回调+异步的例子。

3代码实现:

1)首先创建一个回调接口,让老板得告知干完活如何找到他的方式(留下联系方式):
package com.cczu.CallBack;
//此接口为联系方式,作为老板必须实现此接口<pre name="code" class="java">public interface CallBackInterface {
void execute();
}
2)创建回调对象,就是老板,员工干完活后要和他联系,所以老板必须实现回调接口,不然员工无法找老板?
package com.cczu.CallBack;
//老板是作为应用身份出现的,底层(员工)是不知道有哪些方法,因此他想被底层(员工)调用必须实现此接口

public class Boss implements CallBackInterface {
@Override
public void execute() {
System.out.println("收到了!!" + System.currentTimeMillis());
}
}
3)创建控制类,即员工对象,他必须持有老板的地址(回调接口)。

package com.cczu.CallBack;




public class Employee {
private CallBackInterface callBack = null;
// 告诉老板的联系方式,也就是注册
public void setCallBack(CallBackInterface callBack) {
this.callBack = callBack;
}
// 工人干活
public void doSome() {
// 1.开始干活了
for (int i = 0; i < 10; i++) {
System.out.println("第【" + i + "】事情干完了!");
}
// 2.告诉老板干完了
callBack.execute();
}
}
4)测试类代码
<pre name="code" class="java">public class Client {
public static void main(String[] args) {
Employee emp = new Employee();
emp.setCallBack(new Boss());	// 将回调对象(应用对象)传入,注册
emp.doSome();	// 开启控制器对象运行
}
}<span style="font-size:18px;">
</span>






                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: