国产毛片午夜福利,国产黄网,国产亚洲天堂,97国产精品

  •  
    寫 bean 類的準(zhǔn)則
    發(fā)布時間:2005-03-17   瀏覽次數(shù):1184820
    http://www.netqu.com 中華技術(shù)網(wǎng)會員 Wuxuehui 發(fā)布 寫 bean 的方法是遵循 Sun Microsystems 的 JavaBean 規(guī)范。您可以在 www.javasoft.com 上獲得更多關(guān)于 JavaBean 的信息。 一般的 bean 需求 特性 操作 事件 提示和竅門 一般要求 首先,您必須有一個不帶有參數(shù)的公用構(gòu)造器。此構(gòu)造器也應(yīng)該通過調(diào)用各個特性的設(shè)置方法來設(shè)置特性的缺省值,例如: public Fireworks() { setAutoStart(true); setBackground(Color.black); setSpeed(10); setRadius(40); . . . } 如果 bean 是一個從 java.awt.Component 類繼承而來的可視 bean,您應(yīng)該為 bean 定義一個缺省的大小,例如: public Dimension getPreferredSize() { return (new Dimension(radius*3, radius*3)); } public Dimension getMinimumSize() { return getPreferredSize(); } 特性 對于您需要的每個特性,您應(yīng)該有一個帶有匹配公用 getter 和 setter 方法的專用實例變量,例如: private int speed; . . . public int getSpeed() { return speed; } public void setSpeed(int s) { speed = s; } 此 get 和 set 方法必須有與實例變量相同的名稱,但是個字母要大寫并以 get 和 set 開頭。 由于連接而在任何時候更改它們的特性時,確認(rèn) Bean 在運(yùn)行時行為正確也是很重要的。如果特性的更改影響到 Bean 的可視外觀,您應(yīng)該以此特性設(shè)置的方法來調(diào)用 repaint();。 同樣,如果特性的更改影響到 bean 的大小和位置,您需要確認(rèn)獲得驗證的事物。我們建議編寫您自己的 validateAll 方法,如下所示: private void validateAll() { if (isValid()) { Component self = this; self.invalidate(); Component myParent = self.getParent(); if (myParent != null) { myParent.invalidate(); self = myParent; } self.validate(); } } 然后以此特性設(shè)置的方法調(diào)用 validateAll();。 bean 類將無法進(jìn)行關(guān)于調(diào)用特性設(shè)置方法命令的假設(shè)。您應(yīng)該寫 bean 以便可以初始構(gòu)造它,然后在不引起錯誤的同時在任何命令中設(shè)置其特性。 操作 對于每個您需要的操作,您應(yīng)該有一個公用方法,例如: public void start() { if(thread==null) { thread=new Thread(this); thread.start(); } } 您為操作寫的方法應(yīng)該在無須期待用戶創(chuàng)建連接或設(shè)置很多特性的情況下獨(dú)立操作。 例如,如果您寫了一個音頻 Bean,您希望通過播放操作處理打開聲音的所有步驟、完成您需要的所有設(shè)置并播放聲音。同樣,即使聲音未播放,停止操作也應(yīng)起作用。 事件 對于您需要的每個事件或事件設(shè)置,您應(yīng)該定義事件和偵聽器類。對于此例,查看 FireworksEvent.java 源文件以及 Fireworks.java 文件。此事件類的源應(yīng)該如同這樣: import java.awt.*; import java.util.*; public class FireworksEvent extends EventObject { public static final int EXPLODED = 1; int id = 0; public FireworksEvent(Component source, int id) { super(source); this.id = id; } public int getID() { return id; } } 您應(yīng)該為此事件設(shè)置中的每個事件定義一個公用靜態(tài)結(jié)束事件標(biāo)識符,例如在此例子中的 EXPLODED。 對于偵聽器類的源,查看 FireworksListener.java 源文件: import java.util.*; public interface FireworksListener extends EventListener { public abstract void exploded(FireworksEvent e); } 您應(yīng)該為此事件設(shè)置中的每個事件定義一個公用抽象方法,例如在此例子中的 exploded。 而且,偵聽器類必須擴(kuò)展 EventListener ,以使 JAR 向?qū)軌蛘业剿? 然后,如果由 bean 類播送事件,它必須跟蹤偵聽事件的對象。要這樣做,您需要定義偵聽器實例變量以及 addListener 和 removeListener 方法。返回 Fireworks.java 源,例如,您將查看到: private Vector listeners = new Vector(); . . . public void addFireworksListener(FireworksListener f) { listeners.addElement(f); } public void removeFireworksListener(FireworksListener f) { listeners.removeElement(f); } ,bean 類需要以正確的次數(shù)將事件實際播送到所有的偵聽器。要這樣做,您需要定義 processEvent 方法并以適當(dāng)?shù)拇螖?shù)調(diào)用它,例如: public void processFireworksEvent(FireworksEvent e) { for (Enumeration enum = listeners.elements(); enum.hasMoreElements(); ) ((FireworksListener)enum.nextElement()).exploded(e); } public void run() { . . . processFireworksEvent(new FireworksEvent(this, FireworksEvent.EXPLODED)); } 提示和竅門 如果您要創(chuàng)建產(chǎn)品級 Bean,請記住先做八件事: 使 bean 越小越好,但要注意當(dāng)前的瀏覽器是否支持小 bean bean 或許導(dǎo)致工具滯后,繼而導(dǎo)致瀏覽器滯后,最終導(dǎo)致 JDK 自身滯后。如果您必須使用切邊的類,或者 bean 的性質(zhì)要求 bean 較大,則您應(yīng)該考慮將您的 bean 作為一個插件, 并在一個自包含 jar 中發(fā)送它,或者如有可能,使它具有自己的小安裝過程。您將失去某些小 bean 的優(yōu)勢: Web 管理員必須多執(zhí)行一個步驟:提醒用戶在瀏覽 Web 頁面之前必須先下載和安裝您的 jar 或安裝程序 網(wǎng)上沖浪者也必須多執(zhí)行一個步驟:在瀏覽 Web 頁面之前先下載和安裝您的 jar 或安裝程序。 使您的 bean 可翻譯 將所有的翻譯文本,包括名稱和 bean 的簡短描述及其特征,分隔成 .properties 文件。JAR 向?qū)䴙槟鲞@些。 您需要記住并自己完成的兩件事是:特性編輯器和定制器。定制器、對話框特性編輯器或選擇特性編輯器中的所有術(shù)語,例如高、中、低,也必須為翻譯而分隔。 理想情況下,您也可以實際翻譯 bean 并在 Bean 的 jar 中提供各種語言的 .properties 文件。 然而,如果您至少提供了本地語言 .properties 文件,則第三方可為您翻譯 bean。 在文件清單中為 bean 指定 Depends-On: 標(biāo)記 將 Bean 的 jar 中的所有文件標(biāo)識為“運(yùn)行時需要 vs. 只在編輯時需要”。在運(yùn)行時需要的所有文件將列示在 jar 清單文件的依賴于:標(biāo)簽后。JAR 向?qū)У陌l(fā)布標(biāo)簽使這個操作很簡單,并使您獲得清單文件權(quán)。 如果您不指定依賴于:標(biāo)簽,工具將假設(shè)所有文件都是在運(yùn)行時需要。這對于下載性能(例如不必要地下載特性編輯器和其它只在編輯時需要的文件)是很不好的。 賦予您的 bean 一個明確的大小 bean 將實現(xiàn) getPreferredSize 方法,以便當(dāng)首次用可能未定義的關(guān)鍵字特性構(gòu)造時,它的表現(xiàn)良好。 如果在次放入時,bean 是 0 x 0 象素,那么用戶可能會混淆。 當(dāng)更改關(guān)鍵字特性時,大小也應(yīng)正常工作。例如,如果 bean 有一個在垂直和水平方位間轉(zhuǎn)換的特性,則大小應(yīng)被寫入以相應(yīng)地調(diào)整自身。 為 bean 指定缺省特性 利用 JavaBean 規(guī)范中的缺省特性部分,它將使您的 bean 在某些工具中易于使用。 JAR 向?qū)惯@個操作變得簡單并為您獲得 BeanInfo 權(quán)。 為 bean 及其特性指定簡要的非技術(shù)名稱和簡短描述 尋找簡要的非技術(shù)名來代替冗長的技術(shù)術(shù)語。例如,用 sum interval 代替 accumulatorInterval。還請注意,特性名的項以小寫表示并在字與字間留有空格,這對于用戶將更友好。 縮小用戶可見的特性范圍 為 bean 提供一個明確的 BeanInfo 以便不將每個實例變量都顯示為 bean 的特性,而且不將每個方法顯示為 Bean 的操作。 JAR 向?qū)惯@個操作變得簡單并為您獲得 BeanInfo 權(quán)。 為 bean 指定大圖標(biāo)和小圖標(biāo) ,為 Bean 提供大的(32x32)和小的(16x16)彩色圖標(biāo)。而且,確保圖標(biāo)有一個不同于灰色的透明背景。盡管很少使用,您也應(yīng)養(yǎng)成提供黑色和白色圖標(biāo)的習(xí)慣。JAR 向?qū)У恼{(diào)色板 標(biāo)簽使這個操作變得簡單,并使您獲得 BeanInfo 權(quán) 來源:http://edu.chinaz.com
    下一篇: Jsp問答集一
    立即預(yù)約