隨筆 - 63  文章 - 0  trackbacks - 0
          <2009年1月>
          28293031123
          45678910
          11121314151617
          18192021222324
          25262728293031
          1234567

          常用鏈接

          留言簿(2)

          隨筆分類

          隨筆檔案

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

           

          所謂回調,就是客戶程序C調用服務程序S中的某個函數A,然后S又在某個時候反過來調用C中的某個函數B,對于C來說,這個B便叫做回調函數。

          例:  
            1.class   A,class   B  
            2.class   A實現接口operate  
            3.class   B擁有一個參數為operate接口類型的函數test(operate   o)  
            4.class   A運行時調用class   B中test函數,以自身傳入參數  
            5.class   B已取得A,就可以隨時回調A所實現的operate接口中的方法

          舉個例子來說:

          public interface InterestingEvent
          {

              // This is just a regular method so it can return something or

              // take arguments if you like.

              public void interestingEvent ();

          }






          public class EventNotifier
          {

              private InterestingEvent ie;

              private boolean somethingHappened;

              public EventNotifier (InterestingEvent event)
              {

                  // Save the event object for later use.

                  ie = event;

                  // Nothing to report yet.

                  somethingHappened = false;

              }

              // 

              public void doWork ()
              {

                  // Check the predicate, which is set elsewhere.

                  if (somethingHappened)
                  {

                      // Signal the even by invoking the interface's method.

                      ie.interestingEvent ();

                  }

                  //
              }

              //

          }



          public class CallMe implements InterestingEvent
          {

              private EventNotifier en;

              public CallMe ()
              {

                  // Create the event notifier and pass ourself to it.

                  en = new EventNotifier (this);

              }

              // Define the actual handler for the event.

              public void interestingEvent ()
              {

                  // Wow!  Something really interesting must have occurred!

                  // Do something

              }

              //

          }






















          posted on 2009-01-20 08:51 lanxin1020 閱讀(219) 評論(0)  編輯  收藏 所屬分類: j2se
          主站蜘蛛池模板: 宝丰县| 阳春市| 屏山县| 大竹县| 阳高县| 宿松县| 鹤峰县| 中牟县| 辽宁省| 廊坊市| 西乌珠穆沁旗| 泽库县| 长顺县| 岳阳县| 松原市| 沙湾县| 郑州市| 河东区| 洞口县| 平定县| 瑞昌市| 沙湾县| 双鸭山市| 西吉县| 惠安县| 海晏县| 武川县| 北宁市| 讷河市| 广德县| 赣州市| 当阳市| 章丘市| 汝城县| 民权县| 泗洪县| 新巴尔虎左旗| 福鼎市| 营口市| 罗甸县| 龙口市|