2009-12-29 89 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访问。