2010-12-17 5 views
3

는의에 대해 브레인 스토밍을 만들어 보자 "우리가 GWT, GXT, SmartGWt 등의 코드 크기를 줄이기 위해 무엇을 할 수 있을까?"아이디어

; 버튼을 사용하려면;

Button b = new Button(); 
b.setText("Ok"); 
b.setListener(this); 
b.setEnabled(false); 

Button b2 = new Button(); 
b2.setText("Ok2"); 
b2.setListener(this); 
b2.setEnabled(false); 

그러나 우리는 공장과 같은 패턴 버튼을 만들 수 있습니다. 더 버튼의

public static createButton(String name, Listener listener, boolean enable){ 
    Button b = new Button(); 
    b.setText("Ok"); 
    b.setListener(this); 
    b.setEnabled(false); 
} 

Button b = createButton("ok",this, false); 
Button b2 = createButton("ok2",this, false); 

나는이 예제에 대해 어떻게 생각하십니까, 코드 크기가 정말 차이를 보여줍니다 생각? 아니면 이런 생각을 해? 난 당신 버튼 클래스를 만들 생각

답변

1

같은 빌더 패턴 http://en.wikipedia.org/wiki/Builder_pattern로 만들 수있는 또 다른 솔루션

public class MyButton extends Button { 
    private String text; 
    private Listener l; 
    private boolean enabled; 
    ... 
    ... 
    ... 

    public MyButton (String text, Listener l, boolean enable) { 
      this.text = text; 
      .... 
    } 
} 

귀하는 GXT와 aplications에 개발하고, 응용 프로그램의 언어 인 경우 영어와 다릅니다. 응용 프로그램에서 로케일을 정의 할 수 있지만이 경우 컴파일러는 하나의 영어 JS와 하나의 로켈 JS를 생성합니다. 이를 피하고 컴파일 시간을 단축하십시오. 로케일 메시지 내용을 com\extjs\gxt\ui\client\messages\XMessages.properties 대신 바꿀 수 있습니다. com\extjs\gxt\ui\client\messages\XMessages_it.properties

+0

그래, 빠른 개발을위한 좋은 트릭입니다 :) –

2

당신은 또한

 new MyButton().setText("asd").setListener(l).setEnabled(false).senLength(343).. 
..constructMyButton(); 
+1

예, 저는 MyButton 클래스에 createButton 메서드를 넣고 private 클래스 생성자를 정의했습니다. 위젯을 확장하여 자체 위젯을 생성하면 편리함을 얻을 수 있습니다. 필요에 따라서 효과가 무엇을 기대 개발 된 응용 프로그램 –

+0

에 걸쳐 모두 적용 변경 방법을 재정? 어떤 마술? –

+0

나는 무엇이든을 기대한다. 다른 솔루션에 대해서만 알고 싶습니다. 나는 당신의 솔루션을 읽고 내 자신의 사용법을 씁니다. 당신의 대답에서 당신은 무엇을 기대합니까? –