隨筆 - 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 閱讀(223) 評論(0)  編輯  收藏 所屬分類: j2se
          主站蜘蛛池模板: 凤阳县| 大余县| 萨迦县| 海盐县| 呼伦贝尔市| 冷水江市| 桦川县| 东乡族自治县| 西畴县| 南京市| 绵竹市| 日土县| 朔州市| 巴彦淖尔市| 开封市| 星子县| 新野县| 昭平县| 陆河县| 汶川县| 蒙山县| 漳浦县| 如皋市| 佛学| 云龙县| 兰考县| 通河县| 祁连县| 永新县| 原平市| 左贡县| 镇赉县| 洪湖市| 娄烦县| 桂林市| 大竹县| 五峰| 灌云县| 漳平市| 巨野县| 施秉县|