隨筆 - 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
          主站蜘蛛池模板: 昌图县| 大洼县| 连云港市| 青神县| 镶黄旗| 永寿县| 灵山县| 镇巴县| 易门县| 蒙山县| 浦城县| 晋中市| 彝良县| 龙门县| 辽阳县| 桓仁| 泰安市| 龙井市| 民丰县| 镇平县| 甘孜| 伊春市| 卢湾区| 高要市| 沙雅县| 东莞市| 蕉岭县| 忻城县| 宿州市| 哈密市| 昭通市| 嘉善县| 榆中县| 长海县| 隆安县| 北海市| 华安县| 靖江市| 鄂托克前旗| 南部县| 镇赉县|