explore 发表于 2013-2-4 20:23:11

回调函数

转自:   
 http://summerbell.iteye.com/blog/380693
 http://kidult.iteye.com/blog/148982
 
 


所谓回调,就是客户程序C调用服务程序S中的某个方法a,然后S又在某个时候反过来调用C中的某个方法b,对于C来说,这个b便叫做回调函数。
一般说来,C不会自己调用b,C提供b的目的就是让S来调用它,而且是C不得不提供。由于S并不知道C提供的b叫甚名谁,所以S会约定b的接口规范(函数原型),然后由C提前通过S的一个函数r告诉S自己将要使用b函数,这个过程称为回调函数的注册,r称为注册函数。 下面使用java回调函数来实现一个测试函数运行时间的工具类:
 
     如果我们要测试一个类的方法的执行时间,通常我们会这样做:
 
public   classTestObject {       /**      * 一个用来被测试的方法,进行了一个比较耗时的循环      */      public   static   voidtestMethod(){         for ( inti= 0 ; i< 100000000 ; i++){                        }       }       /**      * 一个简单的测试方法执行时间的方法      */      public   voidtestTime(){         longbegin = System.currentTimeMillis(); //测试起始时间            testMethod(); //测试方法            longend = System.currentTimeMillis(); //测试结束时间            System.out.println(":"+ (end - begin)); //打印使用时间      }            public   static   voidmain(String[] args) {         TestObject test=newTestObject();         test.testTime();       }   }    
    大家看到了testTime()方法,就只有"//测试方法"是需要改变的,下面我们来做一个函数实现相同功能但更灵活:

     首先定一个回调接口:
<div class="code_title">public   interfaceCallBack {       //执行回调操作的方法      voidexecute();   }
页: [1]
查看完整版本: 回调函数