Java Бин объединяет множество объектов в один. Как? - PullRequest
1 голос
/ 27 февраля 2020

Я недавно начал читать о Java Бобах, и у меня возник вопрос, который был точно таким же, как этот вопрос Топи c. Поэтому я повторяю Вопрос:

в определении сказано, что "java bean-компонент инкапсулирует множество объектов в один объект (Bean). "

1. Что здесь означает «много объектов»?

и

2. Как они заключены в один объект java бобами?


Редактировать:

С Java Beans Wikipedia :

в вычислениях на платформе Java JavaBeans - это классы, которые инкапсулируют множество объектов в один объект (компонент).


Edit2: все классы могут иметь несколько атрибутов и полей. Если инкапсуляция многих объектов означает наличие нескольких атрибутов и полей, я не понимаю, почему они упоминали эту способность как преимущество java класса бина.

Ответы [ 3 ]

1 голос
/ 27 февраля 2020

Мы обычно говорим о бобах Spring, но я думаю, что вы не об этом. Мне кажется, что эти JavaBeans - это не что иное, как классы с несколькими атрибутами и только геттерами / сеттерами, но конструктор которых имеет нулевые аргументы (и, следовательно, он является изменяемым). Так просто. Факт инкапсуляции многих объектов объясняется тем, что он имеет несколько атрибутов.

Однако я никогда не называл их JavaBeans, и я думаю, что наиболее похожей концепцией, с которой я когда-либо работал, являются POJO. Я не уверен, есть ли какая-либо разница, но цель выглядит одинаково.

Если вы когда-нибудь говорили о бобе в Java, я думаю, что кто-нибудь подумает о Spring bean . Я предлагаю вам не использовать его в другом контексте.

Это всего лишь мое предположение. Если я сказал что-то не так, пожалуйста, скажите мне.

1 голос
/ 27 февраля 2020

JAVA Beans

Концепция JavaBeans изначально была разработана для Swing, чтобы облегчить разработку отдельных GUI компонентов, но шаблон был переназначен для земли Spring bean-компоненты и внутреннее постоянство с Hibernate

С другой стороны, POJO являются простыми java классами.


Другой вид:

Любой POJO при взаимодействии с какой-либо третьей стороной становится JAVA BEAN:)

  • Java Классы, взаимодействующие с любым ORM (скажем, Hibernate)
  • Java Классы, используемые в качестве объектов сеанса в EJB

Как говорится, «С великими полномочиями приходит великая ответственность» [выдержка из человека-паука]

Итак наши обычные Pojos становятся JAVA BEANS:)

Статья, которую стоит пройти: https://mossgreen.github.io/Java-Bean-VS-Spring-Bean/

1 голос
/ 27 февраля 2020

Сначала, чтобы прояснить это, каждый Class в Java расширяет тип Object. Нечто подобное String также является Object.

«Многие объекты» относятся к тому, как мы можем использовать различные объекты в качестве полей внутри компонента. Это создает отношение has-a с бобом к вашему Objects.

Например, скажем, у нас есть это Bean:

public class YourBean implements java.io.Serializable {

    private String s;
    private ArrayList<String> list;

    //Omitted rest of bean boilerplate
}

Этот пример будет содержать два разных Object s внутри него, String s и ArrayList<String> с именем list. Вы можете добавить столько различных Objects и примитивов к вашему компоненту, сколько захотите.

Чтобы создать компонент с помощью конструктора без аргументов, вы должны использовать:

YourBean bean = new YourBean();

И Вы можете установить и получить значения Objects, инкапсулированные в:

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

Таким образом, вы сможете ссылаться на все Objects внутри компонента, ссылаясь на компонент Object I по имени bean.

Кроме того, вы также можете создать несколько одинаковых типов bean, поэтому каждый раз, когда вы делаете new YourBean(), вы также сможете использовать все Objects, содержащиеся в нем.

Эта функциональность не уникальна для Bean, вы можете сделать это любым Class, скорее Bean - это термин, используемый для описания определенного c способа написания некоторых классов.

Я рекомендую изучить Java Композицию , чтобы узнать, когда следует использовать отношение has-a , а не наследование , которое является is-a отношения.

...