|
當(dāng)一個(gè)JavaBean在構(gòu)造工具內(nèi)被用戶化,并與其它Bean建立連接之后,它的所有狀態(tài)都應(yīng)當(dāng)可被保存,下一次被load進(jìn)構(gòu)造工具內(nèi)或在運(yùn)行時(shí),就應(yīng)當(dāng)是上一次修改完的信息。為了能做到這一點(diǎn),要把Bean的某些字段的信息保存下來,在定義Bean時(shí)要使它實(shí)現(xiàn)java.io.Serializable接口。例如:
public class Button implements java.io.Serializable { }
實(shí)現(xiàn)了序列化接口的Bean中字段的信息將被自動(dòng)保存。若不想保存某些字段的信息則可在這些字段前冠以transient或static關(guān)鍵字,transient和static變量的信息是不可被保存的。通常,一個(gè)Bean所有公開出來的屬性都應(yīng)當(dāng)是被保存的,也可有選擇地保存內(nèi)部狀態(tài)。 Bean開發(fā)者在修改軟件時(shí),可以添加字段,移走對其它類的引用,改變一個(gè)字段的private/protected/public狀態(tài),這些都不影響類的存儲(chǔ)結(jié)構(gòu)關(guān)系。然而,當(dāng)從類中刪除一個(gè)字段,改變一個(gè)變量在類體系中的位置,把某個(gè)字段改成transient/static,或原來是transient/static,現(xiàn)改為別的特性時(shí),都將引起存儲(chǔ)關(guān)系的變化。 5 JavaBean的存儲(chǔ)格式
JavaBean組件被設(shè)計(jì)出來后,一般是以擴(kuò)展名為jar的Zip格式文件存儲(chǔ),在jar中包含與JavaBean有關(guān)的信息,并以MANIFEST文件指定其中的哪些類是JavaBean。以jar文件存儲(chǔ)的JavaBean在網(wǎng)絡(luò)中傳送時(shí)極大地減少了數(shù)據(jù)的傳輸數(shù)量,并把JavaBean運(yùn)行時(shí)所需要的一些資源捆綁在一起 本章主要論述了JavaBeans的一些內(nèi)部特性及其常規(guī)設(shè)計(jì)方法,參考的是JavaBeans規(guī)范1.0A版本。隨著世界各大ISV對JavaBeans越來越多的支持,規(guī)范在一些細(xì)節(jié)上還在不斷演化,但基本框架不會(huì)再有大的變動(dòng)。
|