转载自:http://blog.csdn.net/fengyifei11228/article/details/5729445
所谓回调,就是客户程序C调用服务程序S中的某个函数A,然后S又在某个时候反过来调用C中的某个函数B,对于C来说,这个B便叫做回调函数。例如Win32下的窗口过程函数就是一个典型的回调函数。一般说来,C不会自己调用B,C提供B的目的就是让S来调用它,而且是C不得不提供。由于S并不知道C提供的B姓甚名谁,所以S会约定B的接口规范(函数原型),然后由C提前通过S的一个函数R告诉S自己将要使用B函数,这个过程称为回调函数的注册,R称为注册函数。Web Service以及Java的RMI都用到回调机制,可以访问远程服务器程序。
其实就是通过别人的函数达到调用自己函数的目的,c/c++是通过函数指针来实现的,而java是通过接口来实现的,其实也是利用了多态的性质。
假设我是程序员A,以下是我的程序a:
我还需要定义一个接口,以便程序员B根据我的定义编写程序实现接口。
于是,程序员B只需要实现这个接口就能达到回调的目的了: