飞艳小屋

程序--人生--哲学___________________欢迎艳儿的加入

BlogJava 首页 新随笔 联系 聚合 管理
  52 Posts :: 175 Stories :: 107 Comments :: 0 Trackbacks

使用接口  
   
  也就是使用多态来实现回调函数  
   
public interface ICallback {
  public void   func();
}
   
public class ClassWithCallbackFunction implements ICallback{
  public ClassWithCallbackFunction() {
  }
  public void func(){
    System.out.println("cccccccccccccccccc");
  }
}
   
public class Caller {
  ICallback callback;
  public void doCallback() {
    callback.func();
  }

  public void setCallback(ICallback callback) {
    this.callback = callback;
  }

}
    
public class MainClass {
  public MainClass() {
  }

  public static void main(String[] args) {
    Caller caller = new Caller();
    caller.setCallback(new ClassWithCallbackFunction() {
      public void func() {
        System.out.println("aaaaaaaaaa");
      }
    });
    caller.doCallback();
  }

现实中是把doCallback()方法放在setCallback里调用,以上是为了说明回调原理
public class Caller {
  ICallback callback;
  public void doCallback() {
    callback.func();
  }

  public void setCallback(ICallback callback) {
    this.callback = callback;
    doCallback();
  }

}

posted on 2007-06-25 14:13 天外飞仙 阅读(10160) 评论(6)  编辑  收藏 所属分类: java

Feedback

# re: Java中的回调函数实例说明 2008-03-27 18:27 冰河快狼
不错  回复  更多评论
  

# re: Java中的回调函数实例说明 2008-08-17 22:30 cpp
很受启发,
main中
Caller caller = new Caller();
//inject a object that implements the interface
caller.setCallback(new ImplementsOfInterface());
caller.doCallback();
更能体现回调函数  回复  更多评论
  

# re: Java中的回调函数实例说明 2008-08-18 09:20 ss
caller.setCallback(new ImplementsOfInterface());
这样不叫回调,只是一般的调用了,回调的主要作用是不确定所要调用函数的具体内容  回复  更多评论
  

# re: Java中的回调函数实例说明 2010-01-11 16:46 cooltao
这种回调顶多就是一个观察者模式,并不是回调  回复  更多评论
  

# re: Java中的回调函数实例说明 2011-03-02 14:13 greatstar
下面这段不写的话似乎回调的含义更明确:

public class ClassWithCallbackFunction implements ICallback{
public ClassWithCallbackFunction() {
}
public void func(){
System.out.println("cccccccccccccccccc");
}
}  回复  更多评论
  

# re: Java中的回调函数实例说明[未登录] 2011-12-21 11:44 鹏程
谢谢啊  回复  更多评论
  


只有注册用户登录后才能发表评论。


网站导航: