2011年8月8日 星期一

GWT Note 2

Event and Event handler

有四種方式來實作UI介面與事件觸發處理的關係
1.handler獨立成一個class,這樣會多很多class file不好review code和維護。
public class GwtEvents implements EntryPoint {
   ...
   public void onModuleLoad() {
     textfield = new TextBox();
     textfield.addKeyUpHandler(new MyHandler(this));
     ...
   }//end onModuleLoad
}//end class

public class MyHandler implements KeyUpHandler {
   ...
   public void onKeyUp(KeyUpEvent event) {
   ...
   }
}//end class

2.直接實作handler
public class GwtEvents implements EntryPoint, KeyUpHandler {
   ...
   public void onModuleLoad() {
     textfield = new TextBox();
     textfield.addKeyUpHandler(this);
     ...
    }

   public void onKeyUp(KeyUpEvent event) {
   ...
   }

}//end class


3. (Named)Inner class
public class GwtEvents implements EntryPoint { 
   public void onModuleLoad() { 
      textfield = new TextBox(); 
      textfield.addKeyUpHandler(new MyHandler()); 

   private class MyHandler implements KeyUpHandler { 
     public void onKeyUp(KeyUpEvent event) { 
     ... 
    } 

   }//end onModuleLoad 
}//end class 
4.Anonymous inner classes
public class GwtEvents implements EntryPoint { 
   ... 
   public void onModuleLoad() { 
     textfield = new TextBox(); 
     textfield.addKeyUpHandler(new KeyUpHandler() { 
     @Override 
     public void onKeyUp(KeyUpEvent event) { 
      ... 
     } 
    }); 
   }//end onModuleLoad 
}//end class 
請依情況選擇2、3的作法,避免用方法4。

沒有留言:

張貼留言

AI 時代的影響(2026-10-24的心得)

  寫了半個世紀程式、 曾出版《Clean Code》教全世界工程師把程式碼寫乾淨的 Robert C. Martin(Uncle Bob), 最近公開表示他已經有超過 95% 的時間不再逐行閱讀 AI 寫的程式碼。 一位一生都在強調「程式碼是寫給人讀的」宗師級人物,何以敢做出...