java 回调函数

  首先说说什么叫回调函数,在WINDOWS中,程序员想让系统DLL调用自己编写的一个方法,于是利用DLL当中回调函数(CALLBACK)的接口来编写程序,使它调用,这个就称为回调。

  简单的说,程序员只需根据接口来编写相应的业务逻辑,然后通过调用dll即可调用自己的函数

举个例子:

程序员A写了一段程序(程序a),其中预留有回调函数接口,并封装好了该程序。程序员B要让a调用自己的程序b中的一个方法,于是,他通过a中的接口回调自己b中的方法。目的达到。在C/C++中,要用回调函数,被掉函数需要告诉调用者自己的指针地址,但在JAVA中没有指针,怎么办?我们可以通过接口(interface)来实现定义回调函数。

 

 1 程序A
 2 public class Caller {
 3     private MyCallInterface mc;
 4 
 5     public Caller() {
 6     }
 7 
 8     public void setCallfuc(MyCallInterface mc) {
 9         this.mc = mc;
10     }
11 
12     public void call() {
13         mc.fuc();
14     }
15 }
16 
17 
18 public interface MyCallInterface {
19      public void fuc();
20 }
21 
22 程序员B通过实现这个接口,将自己注册给A,当调用完A后,A会回调B中的函数
23 public class Callee implements MyCallInterface {
24 
25     public void fuc() {
26         System.out.println("in Callee's fuc()");
27     }
28 
29     public static void main(String args[]) {
30         Caller call = new Caller();
31         call.setCallfuc(new Callee());
32         call.call();
33     }
34 
35 }
posted @ 2012-04-16 10:34  feiling  阅读(356)  评论(2编辑  收藏  举报