2009-12-14 64 views
4

Java有一個「bean」的概念,它是一個帶有無參數構造函數和getter/setter方法的類。這個模式是否有更通用的名稱,如果我們正在與從未使用Java的程序員交談,我們可以避免使用術語「bean」?在其他語言中使用什麼bean模式名稱

+3

你的意思是寶拉豆? – bniwredyc 2009-12-14 19:16:37

回答

1

在C中,一個struct。在VB中,structure

+0

雖然bean比結構稍微多一點 - 它是一個帶有訪問器方法的結構。 – Dan 2009-12-14 19:17:26

+0

+1,一個bean就是一個結構。訪問方法特定於Java,在支持屬性(Python,C#,Scala等)的語言中不需要。 – gooli 2009-12-18 08:00:27

+0

儘管bean構造通常用作結構的替代品,但它實際上是一個反模式:與所有的OO類一樣,大多數bean應該封裝行爲,而不是一個愚蠢的數據容器。檢查下面的可重用軟件組件以獲得更好的答案。考慮一個Bean是Windows COM組件的Java等價物。 – hyperman 2012-10-24 13:50:04

3

如果你看一下JavaBean definition,更「通用」的名稱可能是可重用的軟件組件(見本tutorial from 1996!),因爲它提供了一個定義良好的服務集(系列化,存取,無參構造函數)
的但當然,所有的部件不一定是JavaBean的。

它們也可以被看作是「物業經理」,因爲它們允許屬性之間的性能的發現和訪問(通過PropertyDescriptor,以及managing constraints
這最後一個方面允許像Scala這樣基於JVM的語言來適應自己的特性與JavaBean約定關係密切,與scala.reflect.BeanProperty directive

0

Altough豆建設經常被用來作爲一個結構的替代品,這是一個真正的反模式:像所有的OO類,豆類最應該封裝的行爲,不是一個愚蠢的數據容器。最初,Bean被定位爲Windows COM組件的Java等價物,它的屬性可以被包含框架發現。