javaBean

javaBean

JAVA語言開發的可重用組件
JavaBean是一種JAVA語言寫成的可重用組件。為寫成JavaBean,類必須是具體的和公共的,并且具有無參數的構造器。JavaBean通過提供符合一緻性設計模式的公共方法将内部域暴露成員屬性。衆所周知,屬性名稱符合這種模式,其他Java類可以通過自省機制發現和操作這些JavaBean的屬性。
    中文名:Javabean 外文名:JavaBean 别名: 使用類型:可重用組件 開發者:SUN 使用規範:JSR 軟件語言:Java

概念

JavaBean是一種可重用的Java組件,它可以被Applet、Servlet、JSP等Java應用程序調用.也可以可視化地被Java開發工具使用。它包含屬性(Properties)、方法(Methods)、事件(Events)等特性。nJavaBean是一種軟件組件模型,就跟ActiveX控件一樣,它們提供已知的功能,可以輕松重用并集成到應用程序中的java類。任何可以用Java代碼創造的對象都可以利用JavaBean進行封裝。通過合理的組織具有不同功能的JavaBean,可以快速的生成一個全新的應用程序,如果将這個應用程序比作一輛汽車,那麼這些JavaBean就好比組成這輛汽車的不同零件。對軟件開發人員來說,JavaBean帶來的最大的優點是充分提高了代碼的可重用性,并且對軟件的可維護性和易維護性起到了積極作用。nJavaBean的種類按照功能可以劃分為可視化和不可視化兩類。可視化的JavaBean就是擁有GUI圖形用戶界面的,對最終用戶是可見的。不可視化的JavaBean不要求繼承,它更多的被使用在JSP中,通常情況下用來封裝業務邏輯、數據分頁邏輯、數據庫操作和事物邏輯等,這樣可以實現業務邏輯和前台程序的分離,提高了代碼的可讀性和易維護性,使系統更健壯和靈活。随着JSP的發展,JavaBean更多的應用在非可視化領域,并且在服務器端應用方面表現出了越來越強的生命力。

功能特點

用戶可以使用JavaBean将功能、處理、值、數據庫訪問和其他任何可以用java代碼創造的對象進行打包,并且其他的開發者可以通過内部的JSP頁面、Servlet、其他JavaBean、applet程序或者應用來使用這些對象。用戶可以認為JavaBean提供了一種随時随地的複制和粘貼的功能,而不用關心任何改變。

JavaBean可分為兩種:一種是有用戶界面(UI,User Interface)的JavaBean;還有一種是沒有用戶界面,主要負責處理事務(如數據運算,操縱數據庫)的JavaBean。JSP通常訪問的是後一種JavaBean。nJavaBean是可複用的平台獨立的軟件組件,開發者可以在軟件構造器工具中對其直接進行可視化操作。軟件構造器工具可以是Web頁面構造器、可視化應用程序構造器、GUI設計構造器或服務器應用程序構造器。有時,構造器工具也可以是一個包含了一些bean的複合文檔的文檔編輯器。nJavaBean可以是簡單的GUI要素,如按鈕或滾動條;也可以是複雜的可視化軟件組件,如數據庫視圖,有些JavaBean是沒有GUI表現形式的,但這些JavaBean仍然可以使用應用程序構造器可視化地進行組合。一個JavaBean和一個JavaApplet相似,是一個非常簡單的遵循某種嚴格協議的Java類。每個JavaBean的功能都可能不一樣,但它們都必須支持以下特征。n一個bean沒有必須繼承的特定的基類或接口。可視化的bean必須繼承的類是java.awt.Component,這樣它們才能添加到可視化容器中去,非可視化bean則不需要繼承這個類。有許多bean,無論是在應用程序構造器工具中,還是在最後創建好的應用程序中,都具有很強的可視化特征,但這并非每個bean必須的特征。在使用Java編程時,并不是所有軟件模塊都需要轉換成bean。Bean比較适合于那些具有可視化操作和定制特性的軟件組件。n從基本上說,JavaBean可以看成是一個黑盒子,即隻需要知道其功能而不必管其内部結構的軟件設備。黑盒子隻介紹和定義其外部特征和與其他部分的接口,如按鈕、窗口、顔色、形狀、句柄等。通過将系統看成使用黑盒子關聯起來的通訊網絡,我們可以忽略黑盒子内部的系統細節,從而有效地控制系統的整體性能。

組成

一個JavaBean由3部分組成:

(1)屬性(properties)

JavaBean提供了高層次的屬性概念,屬性在JavaBean中不隻是傳統的面向對象的概念裡的屬性,它同時還得到了屬性讀取和屬性寫入的API的支持。屬性值可以通過調用适當的bean方法進行。比如,可能bean有一個名字屬性,這個屬性的值可能需要調用StringgetName()方法讀取,而寫入屬性值可能要需要調用voidsetName(Stringstr)的方法。

每個JavaBean屬性通常都應該遵循簡單的方法命名規則,這樣應用程序構造器工具和最終用戶才能找到JavaBean提供的屬性,然後查詢或修改屬性值,對bean進行操作。JavaBean還可以對屬性值的改變作出及時的反應。比如一個顯示當前時間的JavaBean,如果改變時鐘的時區屬性,則時鐘會立即重畫,顯示當前指定時區的時間。

(2)方法(method)

JavaBean中的方法就是通常的Java方法,它可以從其他組件或在腳本環境中調用。默認情況下,所有bean的公有方法都可以被外部調用,但bean一般隻會引出其公有方法的一個子集。

由于JavaBean本身是Java對象,調用這個對象的方法是與其交互作用的唯一途徑。JavaBean嚴格遵守面向對象的類設計邏輯,不讓外部世界訪問其任何字段(沒有public字段)。這樣,方法調用是接觸Bean的唯一途徑。

但是和普通類不同的是,對有些Bean來說,采用調用實例方法的低級機制并不是操作和使用Bean的主要途徑。公開Bean方法在Bean操作中降為輔助地位,因為兩個高級Bean特性--屬性和事件是與Bean交互作用的更好方式。

因此Bean可以提供要讓客戶使用的public方法,但應當認識到,Bean設計人員希望看到絕大部分Bean的功能反映在屬性和事件中,而不是在人工調用和各個方法中。

(3)事件(event)

Bean與其他軟件組件交流信息的主要方式是發送和接受事件。我們可以将bean的事件支持功能看作是集成電路中的輸入輸出引腳:工程師将引腳連接在一起組成系統,讓組件進行通訊。有些引腳用于輸入,有些引腳用于輸出,相當于事件模型中的發送事件和接收事件。

事件為JavaBean組件提供了一種發送通知給其他組件的方法。在AWT事件模型中,一個事件源可以注冊事件監聽器對象。當事件源檢測到發生了某種事件時,它将調用事件監聽器對象中的一個适當的事件處理方法來處理這個事件。

由此可見,JavaBean确實也是普通的Java對象,隻不過它遵循了一些特别的約定而已。

任務

JavaBean的任務就是:“Write once, run anywhere, reuse everywhere”,即“一次性編寫,任何地方執行,任何地方重用”。這個任何實際上就是要解決困擾軟件工業的日益增加的複雜性,提供一個簡單的、緊湊的和優秀的問題解決方案。

1.一個開發良好的軟件組件應該是一次性地編寫,而不需要再重新編寫代碼以增強或完善功能。因此,JavaBean應該提供一個實際的方法來增強現有代碼的利用率,而不再需要在原有代碼上重新進行編程。除了在節約開發資源方面的意義外,一次性地編寫JavaBean組件也可以在版本控制方面起到非常好的作用。開發者可以不斷地對組件進行改進,而不必從頭開始編寫代碼。這樣就可以在原有基礎上不斷提高組件功能,而不會犯相同的錯誤。

2.JavaBean組件在任意地方運行是指組件可以在任何環境和平台上使用,這可以滿足各種交互式平台的需求。由于JavaBean是基于Java的,所以它可以很容易地得到交互式平台的支持。JavaBean組件在任意地方執行不僅是指組件可以在不同的操作平台上運行,還包括在分布式網絡環境中運行。

3.JavaBean組件在任意地方的重用說的是它能夠在包括應用程序、其他組件、文檔、Web站點和應用程序構造器工具的多種方案中再利用。這也許是JavaBean組件的最為重要的任務了,因為它正是JavaBean組件區别于Java程序的特點之一。Java程序的任務就是JavaBean組件所具有的前兩個任務,而這第3個任務卻是JavaBean組件獨有的。

界限

雖然JavaBean和Java之間已經有了明确的界限,但在某些方面JavaBean和Java之間仍然存在着非常明顯的混淆。Java确實是能夠為用戶創建可重用的對象,但它卻沒有管理這些對象相互作用的規則或标準。JavaBean通過指定定義對象之間交互作用的機制,以及大部分對象需要支持的常用行為,如持久性和實際處理等,建立了自己需要的組件模型。

雖然當前的Java組件模型也可以運行得很好,但在傳送真正的可重用性和交互操作性上仍然非常有限,Java用戶需要做的最多的一件事就是創建applet并使得它們在Web頁面上相互通訊,這并非易事。JavaBean提供了一個框架包,使用這個包進行通訊就容易得多了。

JavaBean組件能夠通過定義好的标準屬性改進性能。總體而言,JavaBean充分發展了Java applet的功能,并結合了JavaAWT組件的緊湊性和可重用性。

區别EJB

JavaBean 和 Server Bean(通常稱為Enterprise JavaBean(EJB))有一些基本相同之處。它們都是用一組特性創建,以執行其特定任務的對象,獲得其它特性的能力。這使得bean的行為根據特定任務和所在環境的不同而有所不同。

Enterprise Bean 與 JavaBean 不同。JavaBean 是使用java.beans包開發的,它是 Java 2 标準版的一部分。JavaBean是一台機器上同一個地址空間中運行的組件。JavaBean 是進程内組件。Enterprise Bean 是使用 javax.ejb 包開發的,它是标準JDK的擴展,是 Java 2 Enterprise Edition 的一部分。Enterprise Bean 是在多台機器上跨幾個地址空間運行的組件。因此 Enterprise Bean 是進程間組件。JavaBean 通常用作 GUI 窗口小部件,而 Enterprise Bean 則用作分布式商業對象。

總結

JavaBean是一種組件,它在内部有接口或有與其相關的屬性,以便不同人在不同時間開發的bean可以詢問和集成。EJB是部署在服務器上的可執行組件或商業對象。有一個協議允許對其進行遠程訪問或在特定服務器上安裝或部署它們。

上一篇:Avalanche

下一篇:水泥密度

相關詞條

相關搜索

其它詞條