首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

JavaBeans 開發教程(一):屬性分類與設計規範

     編輯:Java 相關知識

JavaBeans 屬性分類

Beans 屬性對應類中的變量,按作用分四類:

1. Simple 屬性(簡單屬性)

單一值,配套一對 get/set 方法。命名規約:getX/setX 對應屬性 X;isX 對應 boolean 屬性。

public class Alden1 extends Canvas {
    String ourString = "Hello";
    public void setString(String newString) { ourString = newString; }
    public String getString() { return ourString; }
}

2. Indexed 屬性(索引屬性)

數組值,提供整體及單元素 get/set:

public class Alden2 extends Canvas {
    int[] dataSet = {1,2,3,4,5,6};
    public void setDataSet(int[] x) { dataSet = x; }
    public void setDataSet(int index, int x) { dataSet[index] = x; }
    public int[] getDataSet() { return dataSet; }
    public int getDataSet(int x) { return dataSet[x]; }
}

3. Bound 屬性(綁定屬性)

值變化時觸發 PropertyChangeEvent 通知監聽者。需維護監聽器列表:

public class Alden3 extends Canvas {
    String ourString = "Hello";
    private PropertyChangeSupport changes = new PropertyChangeSupport(this);
    public void setString(String newString) {
        String oldString = ourString;
        ourString = newString;
        changes.firePropertyChange("ourString", oldString, newString);
    }
    public void addPropertyChangeListener(PropertyChangeListener l) {
        changes.addPropertyChangeListener(l);
    }
    public void removePropertyChangeListener(PropertyChangeListener l) {
        changes.removePropertyChangeListener(l);
    }
}

構建工具通過 add/remove 方法註冊監聽器,實現屬性聯動(如按鈕背景色變更同步對話框背景)。

4. Constrained 屬性(約束屬性)

值變化前觸發 VetoableChangeEvent,監聽者可拒絕變更(拋出 PropertyVetoException)。

命名規約總結

  • 屬性名首字母小寫(ourString)
  • getter:get + 首字母大寫(getOurString)
  • setter:set + 首字母大寫(setOurString)
  • boolean 類型可用 is 前綴(isEnabled)
  • 索引屬性:getX(int)/setX(int, T) 及 getX()/setX(T[])

設計目的

統一命名規約使構建工具能自動透視分析 Bean 結構,生成屬性表、事件表,同時便於程序員閱讀理解代碼。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved