可擴充的Java應用程式開發模式

來源:互聯網
上載者:User

現在很多JAVA書籍,在介紹SWING的事件模型時,為了使JAVA初學者容易理解和上手,通常是在主類(自己的JFrame子類或JPanel)中做所有事情:要麼由主類作為監聽器,在介面的方法中通過判定事件來源來決定具體做何事;要麼在主類中使用內隱類來實現監聽器,(因為內隱類可以方便的訪問主類中的成員變數)。而很多JAVA初學者在往後的編程中也採用這種模式(至少我以前是這樣的)。其實,這種做法雖然簡單,卻缺乏可讀性、可擴充性和可維護性。之前我看到了一篇關於這個問題的文章(來自於《JavaPro》),現整理出來與大家分享。

下面我將用一個簡單的例子來說明如何使用模式來解決這個問題。

現在,假設我們要編寫一個使用幾個選項按鈕從一個長列表中選擇不同分組的程式,就象下圖中看到的。單擊Female選項按鈕時,只有女孩的名字被顯示;當你點擊Male按鈕時,程式顯示男孩的名字。

這個程式最簡單的版本是在主類中做每件事情,主類包含一些持有孩子姓名的數組和向量(Vector),一個另一個最簡單的方法是為每個孩子建立一個對象,每個對象有一個象isFemal()這樣的方法來協助我們確定要顯示的是男的還是女的。在程式中我們把每個孩子的類稱為Swimmer:

public class Swimmer{
  private String name;
  private int age;
  private String club;
  private boolean female;
  public Swimmer(String name,int age,String club,boolean female){
   this.name=name;
   this.age=age;
   this.club=club;
   this.female=female;
  }
  public boolean isFemale(){
   return female;
  }
  public String getName(){
   return name;
  }
  public int getAge(){
   return age;
  }
  public String getClub(){
   return club;
  }
}

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.