六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 50|回复: 0

回调函数

[复制链接]

升级  58%

5

主题

5

主题

5

主题

童生

Rank: 1

积分
29
 楼主| 发表于 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不会自己调用bC提供b的目的就是让S来调用它,而且是C不得不提供。由于S并不知道C提供的b叫甚名谁,所以S会约定b的接口规范(函数原型),然后由C提前通过S的一个函数r告诉S自己将要使用b函数,这个过程称为回调函数的注册,r称为注册函数。 下面使用java回调函数来实现一个测试函数运行时间的工具类:
 
     如果我们要测试一个类的方法的执行时间,通常我们会这样做:
 
public   class  TestObject {       /**        * 一个用来被测试的方法,进行了一个比较耗时的循环        */        public   static   void  testMethod(){           for ( int  i= 0 ; i< 100000000 ; i++){                          }       }       /**        * 一个简单的测试方法执行时间的方法        */        public   void  testTime(){           long  begin = System.currentTimeMillis(); //测试起始时间            testMethod(); //测试方法            long  end = System.currentTimeMillis(); //测试结束时间            System.out.println("[use time]:"  + (end - begin)); //打印使用时间        }              public   static   void  main(String[] args) {           TestObject test=new  TestObject();           test.testTime();       }   }    
    大家看到了testTime()方法,就只有"//测试方法"是需要改变的,下面我们来做一个函数实现相同功能但更灵活:

     首先定一个回调接口:
<div class="code_title">public   interface  CallBack {       //执行回调操作的方法        void  execute();   }
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表