Java Bean把很多对象封装成一个,怎么样?

Java Bean encapsulates many objects into one,How?

我刚刚开始阅读有关 Java Beans 的文章,我有一个问题与 Topic 的问题完全相同。所以我重复问题:

在定义中说“java bean将许多对象封装到一个对象(Bean)中。

1.What does "many objects" here mean?

2.How they are encapsulated into one object by java beans?


编辑:

来自 Java Beans Wikipedia:

in computing based on the Java Platform, JavaBeans are classes that encapsulate many objects into a single object (the bean).


编辑 2: 所有 classes 都具有多个属性和字段的能力。 如果封装许多对象意味着具有多个属性和字段,我不明白为什么他们提到这种能力是 java bean class.

的优势

首先要说清楚,Java中的每个Class都扩展了类型ObjectString 之类的东西也是 Object.

"many objects" 是指我们如何使用不同的对象作为 bean 中的字段。这会创建一个 has-a 与您的 Objects 的 bean 的关系。

例如,假设我们有这个 Bean:

public class YourBean implements java.io.Serializable {

    private String s;
    private ArrayList<String> list;

    //Omitted rest of bean boilerplate
}

此示例将在其中包含两个不同的 ObjectString s 和名为 listArrayList<String>。您可以根据需要向 bean 添加任意多的不同 Objects 和基元。

要使用无参数构造函数创建 bean,您将使用:

YourBean bean = new YourBean();

并且您可以设置和获取 Objects 封装在 with:

中的值
ArrayList<String> yourList = new ArrayList<>();
bean.setList(yourList);
System.out.println(bean.getList());

通过引用我命名为 bean 的 bean Object,您将能够以这种方式引用 bean 中的所有 Objects

此外,您还可以创建多个相同类型的 bean,因此每次创建 new YourBean() 时,您也可以使用所有 Objects包含在.

此功能并非 Bean 所独有,您可以在任何 Class 中执行此操作,而 Bean 是一个术语,用于描述您编写某些 类。

我建议查看 Java 组合 以了解何时应该使用 has-a 关系,而不是 继承,这是一种是一种关系。

我们通常会谈论 Spring 豆子,但我认为你说的不是这个。在我看来,那些 JavaBean 只不过是 类 具有多个属性并且只有 getters/setters 但其构造函数具有零参数(因此它是可变的)。就如此容易。封装很多对象是因为它有多个属性。

但是,我从来没有将它们称为 JavaBeans,我认为我曾经使用过的最相似的概念是 POJO。我不确定是否有任何区别,但目的看起来是一样的。

如果你曾经在Java中谈论一个bean,我想任何人都会想到一个Spring bean。我建议你不要在其他情况下使用它。

这只是我的猜测。如果我说错了请告诉我。

JAVA豆子

JavaBeans 的概念最初是为 Swing 设计的,以促进独立 GUI 组件的开发,但该模式已被重新用于 Spring beans 和后端持久性领域休眠

另一方面,POJO 很简单 java 类.


另一种观点:

任何与第三方交互的 POJO 都会变成 JAVA BEAN :)

  • Java 类 与任何 ORM(例如 Hibernate)交互
  • Java 类 在 EJB 中用作会话对象

正如他们所说,"With Great Powers Comes Great Responsibilities" [摘自蜘蛛侠]

所以我们的普通 Pojos 变成了 JAVA BEANS :)

一篇值得一读的文章:https://mossgreen.github.io/Java-Bean-VS-Spring-Bean/