什么是"Java Bean"?

mrb*_*lah 34 java definition javabeans

这个名字真的让我失望了.我希望有人能以一种我不会忘记的方式解释它:)

Mar*_*ise 41

任何遵循特定约定的可序列化java类(实现java.io.Serializable):无参构造函数,以及可通过get/set /访问的属性.

我们的想法是使其可预测,以便通过反射自动发现属性等 - 这对工具和框架开发有很大帮助.

  • Bean并不构成非常优雅的OO设计,因为它本质上是一种没有任何行为的数据结构,它完全暴露了它的内部.请参阅域驱动设计:http://en.wikipedia.org/wiki/Domain-driven_design和http://domaindrivendesign.org/resources/what_is_ddd这就是说,大多数设计依赖于类似bean的类来表示他们的模型,所以它是实现这一目标的事实上的标准方式. (3认同)
  • 不遵守DDD并不意味着它不是"优雅的OO设计".它不像Eric Evans拥有对象的概念.事实是,如果你想制作一个数据网格(一个普通的,可以说是不优雅的gui)并且不让你的域对象意识到它,那么属性就像它所获得的一样优雅. (3认同)

Sam*_*son 11

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

JavaBeans是Java的可重用软件组件,可以在构建器工具中以可视方式进行操作.实际上,它们是用符合特定约定的Java编程语言编写的类.它们用于将许多对象封装到单个对象(bean)中,以便它们可以作为单个bean对象而不是作为多个单独对象传递.JavaBean是一个可序列化的Java对象,具有一个无效的构造函数,并允许使用getter和setter方法访问属性.

继续阅读 »

替代文字http://www.javalobby.org/articles/j2me-in-a-nutshell/CoffeeBeanSingle.jpg

  • Esko,当问题很简单时,我没有看到引用维基百科的危害. (4认同)

小智 7

Sun的 JavaBean教程说......

JavaBeans™体系结构基于组件模型,使开发人员能够>创建称为组件的软件单元.组件是独立的,可重用的软件单元,可以使用可视化应用程序构建器工具直观地组装成复合组件,applet,应用程序和servlet.JavaBean组件称为bean.

一组API描述了特定语言的组件模型.JavaBeans API规范描述了JavaBeans组件体系结构的核心详细阐述.

豆类是动态的,因为它们可以更改或定制.通过构建器工具的设计模式,您可以使用bean的"属性"窗口来自定义bean,然后使用可视化操作保存(持久化)Bean.您可以从工具箱中选择一个bean,将其放入表单中,修改其外观和行为,定义与其他bean的交互,并将其与其他bean组合到applet,应用程序或新bean中.

如果您使用了Swing的'按钮',那么您已经使用了一个组件(可见的JavaBean).您可以使用开发人员工具(如NetbeansIDE)来更改Bean的可用"属性".Netbeans使用称为"内省"的东西来发现编码器/用户可以修改哪些JavaBean 属性(例如,Swing Button JavaBean组件的名称,文本标题对齐).您也可以保存其状态(IDE/Beans开发人员可能使用"序列化"来执行此操作),允许您再次使用您喜欢的设置.

JavaBeans不需要是可见的(如swing组件).当有人单击表单上的"确定"按钮时,您可以创建自己的JavaBean来加密文本框中的文本.您没有看到自定义编写的JavaBean,但是其他一些开发人员可以在其代码中重新使用您的"加密"JavaBean,并允许您公开一些"属性"更改(即encryption-type ="blowfish").

此致,SteJav


aka*_*kar 7

JavaBeans是用java编写的可重用软件组件.可以使用构建器工具配置和连接组件.导致java中的任何类成为javabean的三个关键属性是

1.Class is serializable
2.class has a 0 argument constructor
3.class has getter and setter methods for data members
Run Code Online (Sandbox Code Playgroud)

这是一个有资格成为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;
   }

}
Run Code Online (Sandbox Code Playgroud)


Mat*_*ips 5

java bean 是一个可序列化的类,具有无参数构造函数,并为其成员字段使用 getter 和 setter 方法。它在 Java Enterprise Apps 中用于存储业务逻辑数据。