我們可以看到創建一個Bean顯然多麼的簡單。在程序設計中我們幾乎不受到任何的限制。Java Bean的設計提供了一個簡單的輸入點,這樣可以提高到更復雜的層次上。這些高層次的問題超出了這本書所要討論的范圍,但它們會在此做簡要的介紹。我們可以在http://java.sun.com/beans上找到更多的詳細資料。
我們增加更加復雜的程序和它的屬性到一個位置。上面的例子顯示一個獨特的屬性,當然它也可能代表一個數組的屬性。這稱為索引屬性。我們簡單地提供一個相應的方法(再者有一個方法名的命名規則)並且Introspector認可索引屬性,因此我們的應用程序構建工具相應的處理。
屬性可以被捆綁,這意味著它們將通過PropertyChangeEvent通知其它的對象。其它的對象可以隨後根據對Bean的改變選擇修改它們自己。
屬性可以被束縛,這意味著其它的對象可以在一個屬性的改變不能被接受時,拒絕它。其它的對象利用一個PropertyChangeEvent來通知,並且它們產生一個ProptertyVetoException去阻止修改的發生,並恢復為原來的值。
我們同樣能夠改變我們的Bean在設計時的被描繪成的方法:
(1) 我們可以為我們特殊的Bean提供一個定制的屬性表。這個普通的屬性表將被所有的Bean所使用,但當我們的Bean被選擇時,它會自動地調用這張屬性表。
(2) 我們可以為一個特殊的屬性創建一個定制的編輯器,因此普通的屬性表被使用,但當我們指定的屬性被調用時,編輯器會自動地被調用。
(3)我們可以為我們的Bean提供一個定制的BeanInfo類,產生的信息不同於由Introspector默認產生的。
(4) 它同樣可能在所有的FeatureDescriptors中改變“expert”的開關模式,以辨別基本特征和更復雜的特征。