飛艷小屋

          程序--人生--哲學___________________歡迎艷兒的加入

          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 天外飛仙 閱讀(10179) 評論(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 鵬程
          謝謝啊  回復  更多評論
            

          主站蜘蛛池模板: 海晏县| 乌兰浩特市| 博客| 朝阳市| 正阳县| 宣武区| 牟定县| 泸水县| 中超| 齐齐哈尔市| 长寿区| 时尚| 饶阳县| 金堂县| 深水埗区| 新乐市| 洪泽县| 建昌县| 即墨市| 井冈山市| 阳西县| 封开县| 伊川县| 菏泽市| 抚远县| 锡林郭勒盟| 如东县| 阿荣旗| 井研县| 龙井市| 商都县| 镇巴县| 霍林郭勒市| 刚察县| 余干县| 大方县| 奉贤区| 夏津县| 会宁县| 通州区| 芜湖县|