2013-11-28 70 views
0

我覺得有時候,爲了讓我的代碼更有條理,有時候對組件中的組件更方便。這是因爲一些組件可能具有不同的功能,或者可能會變得太長,例如菜單,菜單可以具有菜單項目,每個菜單項目可以同時具有更多的子項目等等。那麼可以在方法中組織組件嗎?有什麼優點或缺點?我的意思是這樣的:在使用swing時,我可以在組件中分組嗎?

public class MyGUI{ 



    public myGUI(){ 

     registerEvents(); 
     setupGUI(); 

    } 

    public void createTextEditor(){ 
     .... 
     } 

     public void createAccountActivationPanel(){ 
     ... 
     } 

     public void createAddButton(){ 
     ..... 
     } 

     public void createRemoveButton(){ 
     .... 
     } 


     public void createMenu() 
     ... 
     } 


     public void createLabels() { 
     ..... 
     } 

     public void setupGui() { 
     createTextEditor(); 
     createAccountActivationPanel(); 
     createRemoveButton(); 
     createAddButton(); 

     //and then proceed with more stuff here 

     ...... 
     } 


     public void registerEvents() { 


      ..... 


     } 
    } 
+0

一般來說是的,可以。正如您所說的,其優點是您可以專注於該方法負責的UI的直接需求。其中一個缺點(這也是有利的)是未來可能難以擴展。如果設計不恰當,則可能需要花費大量時間試圖「撤銷」某些部分並嘗試重建它們。所以,雖然我會鼓勵你打破這樣的用戶界面創建,但我也鼓勵你嘗試並考慮你將來如何修改這些用戶界面...... – MadProgrammer

+0

謝謝MadProgramemr,它可能是最好的把一切都放在構造函數上?或在一個單一的setUp()方法?我覺得如果這樣做,代碼變得非常混亂,然後如果假設的設置方法一次執行許多不同的事情,那麼它就不符合我在良好的應用程序方面學到的知識。此外,我認爲,通過將方法分組,我可以在需要時調用它們,也就是說,我可以實現某些模塊化,而不是如果它們不是必需的,同時也可以使程序更快, ? – bluetxxth

+0

我不認爲它會讓你的程序運行得更快,但它可以使它在未來更加可定製 – MadProgrammer

回答

1

組織你的代碼和創建輔助方法總是一件好事。

一些提示:

  • 輔助方法應該是private,有沒有需要訪問那些從你的類
  • 檢查那些被認爲方法被稱爲只有一次(例如外:setupGui())。當這些方法被調用時,檢查並拋出一個異常(如果它已被調用過)(使用一個實例變量,如boolean initialized)。
  • 考慮創建工廠方法生成並返回一些東西(一個小部件,或者甚至是由其他小部件組成的子組件)。
    示例:createAddButton()應該返回一個按鈕,並且方法的調用者應該決定添加按鈕的位置,而不是工廠方法。
  • 如果可能,請使用您的工廠方法static(只有在您不需要訪問任何實例變量或實例方法時才能使用)。這減少了複雜性和副作用,並允許將工廠方法外部化爲可重用的工廠類。
  • 考慮一下,當你需要他們經常做通用,可重用的組件(例如:列表或表添加/修改/刪除操作)
相關問題