根據(jù)應(yīng)用剪裁javaBeans(1)
· 摘 要
對(duì)于可定制的組件(Components),開(kāi)發(fā)者可以根據(jù)自己的需要剪裁。可定制的JavaBeans中有應(yīng)用程序開(kāi)發(fā)者可以修改的屬性(PRoperties)──例如,改變Beans的外觀和/或動(dòng)作。本文將介紹如何定制JavaBeans。我們將討論屬性、讀取器(getter)和設(shè)置器(setter)方法(Mothods),綁定(Bound)和約束(Constrained)屬性,以及使定制簡(jiǎn)單化的設(shè)計(jì)模板(Design Pattern)。然后介紹屬性編輯器(Editors)和定制器(Customizers),最后我們?cè)谝粋€(gè)已有的JavaBeans中增加定制功能。
可定制的組件有更大的應(yīng)用范圍。例如,對(duì)于一個(gè)電子表格(Spreadsheets)Bean,假如它必須占滿全屏幕、與你的應(yīng)用程序顏色方案沖突或者只能以16進(jìn)制方式顯示數(shù)據(jù),不管它在其他方面的功能有多出色,你恐怕不能用它。
JavaBeans規(guī)范對(duì)簡(jiǎn)單情況提供了非常簡(jiǎn)單的識(shí)別、修改屬性的特征,對(duì)復(fù)雜的情況提供了擴(kuò)展。
本文將研究JavaBeans的定制接口、組件屬性、以及如何編寫(xiě)你的Beans使得集成開(kāi)發(fā)環(huán)境(IDEs)可以將這些屬性顯示給應(yīng)用程序開(kāi)發(fā)者。我們還將討論以下的問(wèn)題:綁定和約束屬性,它們可以方便Beans之間通信和維持一致性;定制器,它可以使我們更方便地定制;BeanBox的使用,它是Sun免費(fèi)提供的JavaBeans測(cè)試工具。
· 什么是定制軟件組件是通用的功能和數(shù)據(jù)模塊,它可以在很多情況下使用,軟件組件的定制是很重要的,假如應(yīng)用程序開(kāi)發(fā)者可以控制其外觀和行為,它才能在很多應(yīng)用程序中得到應(yīng)用。例如,假如一個(gè)按鈕類的文本標(biāo)簽總是“Button”,與之相關(guān)的動(dòng)作總是重啟計(jì)算機(jī)(雖然在一些操作系統(tǒng)中這可能是最有用的工具之一)的話,那它是沒(méi)有多大用處的。
簡(jiǎn)單的組件,如按鈕都有很多開(kāi)發(fā)者可以控制的屬性,其中包括:
復(fù)雜的組件需要更多的定制。定制一個(gè)遠(yuǎn)程數(shù)據(jù)庫(kù)連接可能從可用的服務(wù)器列表中進(jìn)行選擇(信息只有在運(yùn)行時(shí)才可用)、選擇協(xié)議(同上)、指定用戶名和密碼和設(shè)置通過(guò)防火墻訪問(wèn)。
· Beans 的屬性一般說(shuō)來(lái),定制就是配置Beans的內(nèi)部狀態(tài),使其外觀和行為適合所用的環(huán)境。這些內(nèi)部狀態(tài)(顏色、大小和密碼字符串等)在JavaBeans規(guī)范里稱為屬性。Beans中的屬性可以用稱為訪問(wèn)器(accessors)的方法讀取和修改。一個(gè)訪問(wèn)器方法是讀取屬性值的getter方法,或者是修改屬性值的setter方法。在按鈕Beans中有String getLabel()方法,它返回Beans的當(dāng)前標(biāo)簽,有void setLabel(StringnewLabel)方法,它設(shè)置Beans的當(dāng)前標(biāo)簽,只有g(shù)etter方法的屬性是只讀的。
為什么不簡(jiǎn)單地訪問(wèn)Beans內(nèi)部地?cái)?shù)據(jù)成員,直接讀取和修改它們,而是編寫(xiě)一些訪問(wèn)器呢?因?yàn)椴荒鼙WC屬性和Beans內(nèi)部的成員數(shù)據(jù)直接對(duì)應(yīng)。例如,Beans中的標(biāo)簽屬性可能是一個(gè)AWT標(biāo)簽對(duì)象,但是也可能不是。標(biāo)簽文本可能來(lái)自數(shù)據(jù)庫(kù),可能是另一個(gè)Bean的標(biāo)簽,也可能當(dāng)需要時(shí)形成一個(gè)標(biāo)簽。訪問(wèn)器方法是Beans中屬性的統(tǒng)一接口,它隱藏了屬性的實(shí)現(xiàn)細(xì)節(jié)。這是好的面向?qū)ο缶幊虘T例,因?yàn)樗鼫p小了對(duì)象間的依靠和“耦合”。
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注