這個名字真的把我拋棄了。我希望有人能解釋它的方式,我不會忘了:)什麼是「Java Bean」?
回答
任何遵循特定約定的可序列化Java類(實現java.io.Serializable):無參數構造函數,以及可通過get/set /訪問的屬性。
這個想法是讓它可預測,以便通過反射自動發現屬性等 - 對工具和框架開發有很大的幫助。
豆類不構成非常優雅的面向對象設計,因爲它本質上是一個沒有任何行爲的數據結構,它完全暴露了它的內部。請參閱域驅動設計:http://en.wikipedia.org/wiki/Domain-driven_design和http://domaindrivendesign.org/resources/what_is_ddd 也就是說,大多數設計依賴於類似bean的類來表示它們的模型所以這是接近這個事實上的標準方式。 – 2009-12-29 09:18:31
不遵守DDD並不意味着它不是「優雅的OO設計」。這不像Eric Evans擁有物體的概念。事實是,如果你想創建一個數據網格(一個普通的,可以說不是優雅的GUI),而不是讓你的域對象意識到它,屬性就像它得到的那樣優雅。 – fdreger 2011-01-17 22:11:14
根據定義或慣例,JavaBean中沒有任何東西表示它們是「沒有任何行爲的數據結構」。實際上,有一個[標準接口](https://docs.oracle.com/javase/7/docs/api/java/beans/AppletInitializer.html),它有助於實例化「也是Applets的JavaBean」,我想我們都可以同意Applets有行爲! – Ssswift 2017-05-12 22:15:29
http://en.wikipedia.org/wiki/JavaBean
的JavaBeans是爲Java可重用的軟件組件,可以直觀地在構建工具進行操作。實際上,它們是用符合特定約定的Java編程語言編寫的類。它們用於將許多對象封裝到單個對象(bean)中,以便它們可以作爲單個bean對象而不是多個單獨對象傳遞。 JavaBean是一個Java對象,它是可序列化的,有一個空的構造函數,並允許使用getter和setter方法訪問屬性。
alt text http://www.javalobby.org/articles/j2me-in-a-nutshell/CoffeeBeanSingle.jpg
艾斯科,當問題是這樣簡單時,我沒有看到引用維基百科的傷害。 – Sampson 2009-12-29 15:03:08
一個Java bean是一類是可序列化,有一個無參數的構造,並且使用吸氣劑和setter方法其成員字段。它用於Java企業應用程序來存儲業務邏輯數據。
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
的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;
}
}
一個JavaBean是一種Java對象,下面的編程約定滿足:
- 的JavaBean類必須實現Serializable接口
- 的JavaBean類必須有一個無參數的構造函數應該是公共
- 所有JavaBean的屬性必須有公共setter和getter方法設置並獲取所有的bean屬性。
- 所有的JavaBean實例變量都應該是私有的,只能由Getter和setter訪問。
- 1. Java Bean Class的缺點是什麼?
- 2. Java Bean綁定的狀態是什麼?
- 3. 什麼是CDI bean?
- 4. ICEfaces JSF Bean和Spring Bean,VariableResolver是什麼?
- 5. 什麼是非視覺bean?
- 6. 爲什麼要使用java bean?
- 7. 爲什麼Java Bean必須是可序列化的?
- 8. java spring bean中constructor-arg中ref的用法是什麼?
- 9. 什麼是方法getCustomerID()的Java Bean屬性名稱?
- 10. 什麼是java spring中的枚舉類的bean id?
- 11. 什麼是Java
- 12. 什麼是Java
- 13. 什麼是Java
- 14. JavaFX bean與屬性 - 爲什麼都是?
- 15. 什麼是Spring中的內部bean?
- 16. bean對象的適配器是什麼?
- 17. 爲什麼我的bean是空的?
- 18. 標準CodeCacheManager JMX bean是什麼?
- 19. 什麼是spring bean的bean ID實現了一個接口
- 20. java bean比Java Spring中的POJO有什麼優勢?
- 21. 什麼是Java GUI
- 22. 什麼是用java
- 23. 什麼是Java中
- 24. java中'...'是什麼?
- 25. 什麼是Java Universe?
- 26. 什麼是Java中
- 27. 什麼是Java中
- 28. 什麼是Java中
- 29. 什麼是Java中
- 30. 什麼是Java NullPointerException?
http://en.wikipedia.org/wiki/JavaBean – 2009-12-29 05:30:13
問題可以擴展到 - 爲什麼「bean」的名稱爲JavaBean。他們如何擁有任何屬性來「豆」?不確定它會不會增加問題關閉的可能性,並說「與編程無關」 – Xinus 2009-12-29 05:39:51
爲什麼Sun在銷售JavaBeans時總是顯示咖啡豆?還有爲什麼要推銷Java的「茶杯」。 – Xinus 2009-12-29 05:48:30