Interested Article - JavaBeans

Не путать с Enterprise JavaBeans .

JavaBeans — классы в языке Java , написанные по определённым правилам. Они используются для объединения нескольких объектов в один ( англ. bean — фасоль, кофейное зерно) для удобной передачи данных.

Спецификация Sun Microsystems определяет JavaBeans как повторно используемые программные компоненты, которыми можно управлять, используя графические конструкторы и средства IDE .

JavaBeans обеспечивают основу для многократно используемых, встраиваемых и модульных компонентов ПО . Компоненты JavaBeans могут принимать различные формы, но наиболее широко они применяются в элементах графического пользовательского интерфейса . Одна из целей создания JavaBeans — взаимодействие с похожими компонентными структурами . Например, , при наличии соответствующего моста или объекта-обёртки , может использовать компонент JavaBeans так, будто бы он является компонентом COM или ActiveX .

Правила описания JavaBean

Чтобы класс мог работать как bean, он должен соответствовать определённым соглашениям об именах методов, конструкторе и поведении. Эти соглашения дают возможность создания инструментов, которые могут использовать, замещать и соединять JavaBeans.

Правила описания гласят:

  • Класс должен иметь конструктор без параметров, с модификатором доступа public . Такой конструктор позволяет инструментам создать объект без дополнительных сложностей с параметрами.
  • Свойства класса должны быть доступны через get , set и другие методы (так называемые методы доступа ), которые должны подчиняться стандартному соглашению об именах. Это легко позволяет инструментам автоматически определять и обновлять содержание bean’ов. Многие инструменты даже имеют специализированные редакторы для различных типов свойств.
  • Класс должен быть сериализуем . Это даёт возможность надёжно сохранять, хранить и восстанавливать состояние bean независимым от платформы и виртуальной машины способом.
  • Класс должен иметь переопределенные методы equals(), hashCode() и toString().

Так как требования в основном изложены в виде соглашения, а не интерфейса , некоторые разработчики рассматривают JavaBeans, как Plain Old Java Objects , которые следуют определённым правилам именования.

Примеры

// PersonBean.java public class PersonBean implements java.io.Serializable { private String name; private boolean deceased; public PersonBean() { } // Методы геттеры (get) и сеттеры (set) public String getName() { return name; } public void setName(String name) { this.name = name; } public boolean getDeceased() { return deceased; } public void setDeceased(boolean deceased) { this.deceased = deceased; } //Переопределенные методы equals() и hashCode() @Override public boolean equals(Object o) { if (this == o) { return true; } if (o == null || getClass() != o.getClass()) { return false; } PersonBean that = (PersonBean) o; if (deceased != that.deceased) { return false; } return !(name != null ? !name.equals(that.name) : that.name != null); } @Override public int hashCode() { int result = name != null ? name.hashCode() : 0; result = 31 * result + (deceased ? 1 : 0); return result; } //Переопределенный метод toString() @Override public String toString() { return "PersonBean{" + "name='" + name + '\'' + ", deceased=" + deceased + '}'; } }
// TestPersonBean.java public class TestPersonBean { public static void main(String[] args) { PersonBean person = new PersonBean(); person.setName("Bob"); person.setDeceased(true); // Результат: "Bob [deceased]" System.out.print(person.getName()); System.out.println(person.getDeceased() ? " [deceased]" : " [alive]"); } }

Примечания

  1. (амер. англ.) . www.oracle.com . Дата обращения: 31 марта 2021. 16 апреля 2021 года.


Same as JavaBeans