飛艷小屋

          程序--人生--哲學(xué)___________________歡迎艷兒的加入

          BlogJava 首頁(yè) 新隨筆 聯(lián)系 聚合 管理
            52 Posts :: 175 Stories :: 107 Comments :: 0 Trackbacks

          使用接口  
             
            也就是使用多態(tài)來(lái)實(shí)現(xiàn)回調(diào)函數(shù)  
             
          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();
            }

          現(xiàn)實(shí)中是把doCallback()方法放在setCallback里調(diào)用,以上是為了說(shuō)明回調(diào)原理
          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 天外飛仙 閱讀(10181) 評(píng)論(6)  編輯  收藏 所屬分類(lèi): java

          Feedback

          # re: Java中的回調(diào)函數(shù)實(shí)例說(shuō)明 2008-03-27 18:27 冰河快狼
          不錯(cuò)  回復(fù)  更多評(píng)論
            

          # re: Java中的回調(diào)函數(shù)實(shí)例說(shuō)明 2008-08-17 22:30 cpp
          很受啟發(fā),
          main中
          Caller caller = new Caller();
          //inject a object that implements the interface
          caller.setCallback(new ImplementsOfInterface());
          caller.doCallback();
          更能體現(xiàn)回調(diào)函數(shù)  回復(fù)  更多評(píng)論
            

          # re: Java中的回調(diào)函數(shù)實(shí)例說(shuō)明 2008-08-18 09:20 ss
          caller.setCallback(new ImplementsOfInterface());
          這樣不叫回調(diào),只是一般的調(diào)用了,回調(diào)的主要作用是不確定所要調(diào)用函數(shù)的具體內(nèi)容  回復(fù)  更多評(píng)論
            

          # re: Java中的回調(diào)函數(shù)實(shí)例說(shuō)明 2010-01-11 16:46 cooltao
          這種回調(diào)頂多就是一個(gè)觀察者模式,并不是回調(diào)  回復(fù)  更多評(píng)論
            

          # re: Java中的回調(diào)函數(shù)實(shí)例說(shuō)明 2011-03-02 14:13 greatstar
          下面這段不寫(xiě)的話似乎回調(diào)的含義更明確:

          public class ClassWithCallbackFunction implements ICallback{
          public ClassWithCallbackFunction() {
          }
          public void func(){
          System.out.println("cccccccccccccccccc");
          }
          }  回復(fù)  更多評(píng)論
            

          # re: Java中的回調(diào)函數(shù)實(shí)例說(shuō)明[未登錄](méi) 2011-12-21 11:44 鵬程
          謝謝啊  回復(fù)  更多評(píng)論
            

          主站蜘蛛池模板: 横山县| 富宁县| 特克斯县| 三江| 沙河市| 武宁县| 仁寿县| 岳西县| 西宁市| 攀枝花市| 阳春市| 怀化市| 菏泽市| 盐源县| 新津县| 崇仁县| 峨眉山市| 焦作市| 泗水县| 新余市| 滦南县| 乌拉特中旗| 闽清县| 察雅县| 岗巴县| 嵊州市| 德兴市| 永康市| 锦屏县| 遂溪县| 泸西县| 新郑市| 新竹县| 浦县| 峨边| 宜阳县| 抚顺市| 谷城县| 保亭| 肇源县| 盐亭县|