Java回调机制解析

来源:互联网 发布:智能小车用什么单片机 编辑:程序博客网 时间:2024/05/16 00:50
public class CallBack {public static void main(String[] args) {Employee emp = new Employee();// 将回调对象(上层对象)传入,注册emp.setCallBack(new Boss());// 开启控制器对象运行emp.doSome();}}/** * 此接口为联系的方式,不论是电话号码还是联系地址,作为 老板都必须要实现此接口 *  * @author Administrator */interface CallBackInterface {public void execute();}/**** * 老板是作为上层应用身份出现的,下层应用(员工)是不知道 有哪些方法,因此他想被下层应用(员工)调用必须实现此接口 *  * @author Administrator *  */class Boss implements CallBackInterface {public void execute() {System.out.println("收到了!!" + System.currentTimeMillis());}}/** * 员工类,必须要记住,这是一个底层类,底层是不了解上层服务的 *  * @author Administrator *  */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();}}

结果:

第【0】事情干完了!
第【1】事情干完了!
第【2】事情干完了!
第【3】事情干完了!
第【4】事情干完了!
第【5】事情干完了!
第【6】事情干完了!
第【7】事情干完了!
第【8】事情干完了!
第【9】事情干完了!
收到了!!1426128993797


模块之间总是存在这一定的接口,从调用方式上看,可以分为三类:同步调用、回调和异步调用。同步调用是一种阻塞式调用,也是我们在写程序中经常使用的;回调是一种双向的调用模式,也就是说,被调用的接口被调用时也会调用对方的接口,这句话可能有点绕,等文章后面举例说明;异步调用是一种类似消息或事件的机制,解决了同步阻塞的问题,举例来讲:A通知B后,他们各走各的路,互不影响,不用像同步调用那样,A通知B后,非得等到B走完后,A才继续走。回调是异步的基本,因此下面着重说回调机制。








0 0
原创粉丝点击