2009-12-29 90 views
28

這個名字真的把我拋棄了。我希望有人能解釋它的方式,我不會忘了:)什麼是「Java Bean」?

+2

http://en.wikipedia.org/wiki/JavaBean – 2009-12-29 05:30:13

+0

問題可以擴展到 - 爲什麼「bean」的名稱爲JavaBean。他們如何擁有任何屬性來「豆」?不確定它會不會增加問題關閉的可能性,並說「與編程無關」 – Xinus 2009-12-29 05:39:51

+2

爲什麼Sun在銷售JavaBeans時總是顯示咖啡豆?還有爲什麼要推銷Java的「茶杯」。 – Xinus 2009-12-29 05:48:30

回答

29

任何遵循特定約定的可序列化Java類(實現java.io.Serializable):無參數構造函數,以及可通過get/set /訪問的屬性。

這個想法是讓它可預測,以便通過反射自動發現屬性等 - 對工具和框架開發有很大的幫助。

+2

豆類不構成非常優雅的面向對象設計,因爲它本質上是一個沒有任何行爲的數據結構,它完全暴露了它的內部。請參閱域驅動設計:http://en.wikipedia.org/wiki/Domain-driven_design和http://domaindrivendesign.org/resources/what_is_ddd 也就是說,大多數設計依賴於類似bean的類來表示它們的模型所以這是接近這個事實上的標準方式。 – 2009-12-29 09:18:31

+3

不遵守DDD並不意味着它不是「優雅的OO設計」。這不像Eric Evans擁有物體的概念。事實是,如果你想創建一個數據網格(一個普通的,可以說不是優雅的GUI),而不是讓你的域對象意識到它,屬性就像它得到的那樣優雅。 – fdreger 2011-01-17 22:11:14

+0

根據定義或慣例,JavaBean中沒有任何東西表示它們是「沒有任何行爲的數據結構」。實際上,有一個[標準接口](https://docs.oracle.com/javase/7/docs/api/java/beans/AppletInitializer.html),它有助於實例化「也是Applets的JavaBean」,我想我們都可以同意Applets有行爲! – Ssswift 2017-05-12 22:15:29

10

http://en.wikipedia.org/wiki/JavaBean

的JavaBeans是爲Java可重用的軟件組件,可以直觀地在構建工具進行操作。實際上,它們是用符合特定約定的Java編程語言編寫的類。它們用於將許多對象封裝到單個對象(bean)中,以便它們可以作爲單個bean對象而不是多個單獨對象傳遞。 JavaBean是一個Java對象,它是可序列化的,有一個空的構造函數,並允許使用getter和setter方法訪問屬性。

continue reading »

alt text http://www.javalobby.org/articles/j2me-in-a-nutshell/CoffeeBeanSingle.jpg

+4

艾斯科,當問題是這樣簡單時,我沒有看到引用維基百科的傷害。 – Sampson 2009-12-29 15:03:08

4

一個Java bean是一類是可序列化,有一個無參數的構造,並且使用吸氣劑和setter方法其成員字段。它用於Java企業應用程序來存儲業務邏輯數據。

7

Sun's JavaBean Tutorial says...

JavaBeans的™架構基於一個組件模型,其使開發者能夠>創建軟件單元調用的組件。組件是獨立的,可重用的軟件單元,可以使用可視化應用程序生成器工具直觀地將它們組合到複合組件,小程序,應用程序和小服務程序中。 JavaBean組件被稱爲bean。

一組API描述特定語言的組件模型。 JavaBeans API規範描述了JavaBeans組件體系結構的核心詳細闡述。

豆是動態的,他們可以改變或定製。通過構建器工具的設計模式,您可以使用bean的Properties窗口來自定義bean,然後使用可視化操作保存(保留)bean。您可以從工具箱中選擇一個bean,將其放入表單中,修改其外觀和行爲,定義其與其他bean的交互,並將其與其他bean結合到一個applet,應用程序或新bean中。

如果您使用過Swing的'按鈕',那麼您已經使用了一個組件(可見的JavaBean)。您可以使用開發人員工具(如NetbeansIDE)更改Bean的可用'屬性'。 NetBeans使用一種叫做「內省」發現哪個的JavaBean 性質可以由編碼器/用戶(例如文本標題和一個Swing按鈕JavaBean組件對準)進行修改。你也可以保存它的狀態(IDE/Beans開發者可以使用'序列化'來做到這一點),以便再次使用你最喜歡的設置。

JavaBeans不需要可見(如擺動組件)。當有人點擊表格上的「確定」按鈕時,您可以創建自己的JavaBean來加密文本框中的文本。您看不到您自定義的JavaBean,但其他開發人員可以在您的代碼中重複使用您的「加密」JavaBean,並進行一些允許公開的「屬性」更改(即encryption-type =「blowfish」)。

問候, SteJav

6

的JavaBeans是寫在java.The組件可以配置和連接使用,導致在Java任何類助洗劑tools.Three關鍵性能成爲一個JavaBean可重用軟件組件是

1.Class is serializable 
2.class has a 0 argument constructor 
3.class has getter and setter methods for data members 

下面是一個簡單的類,它是符合成爲一個JavaBean

import java.io.*; 

public class Student implements Serializable { 

    private String name = null; 

    //0 argument constructor 
    public Student() { 
    } 
    //getter method 
    public String getName() { 
     return name; 
    } 
    //settor method 
    public void setName(final String name) { 
     this.name = value; 
    } 

} 
2

一個JavaBean是一種Java對象,下面的編程約定滿足:

  1. 的JavaBean類必須實現Serializable接口
  2. 的JavaBean類必須有一個無參數的構造函數應該是公共
  3. 所有JavaBean的屬性必須有公共setter和getter方法設置並獲取所有的bean屬性。
  4. 所有的JavaBean實例變量都應該是私有的,只能由Getter和setter訪問。