2009-12-14 62 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等价物,它的属性可以被包含框架发现。