Главная
Новости
Строительство
Ремонт
Дизайн и интерьер




29.11.2022


28.11.2022


21.11.2022


20.11.2022


19.11.2022


19.11.2022





Яндекс.Метрика

JavaBeans

31.07.2022

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

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

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

JavaBeans обеспечивают основу для многократно используемых, встраиваемых и модульных компонентов ПО. Компоненты JavaBeans могут принимать различные формы, но наиболее широко они применяются в элементах графического пользовательского интерфейса. Одна из целей создания JavaBeans — взаимодействие с похожими компонентными структурами. Например, Windows-программа, при наличии соответствующего моста или объекта-обёртки, может использовать компонент 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.isDeceased() ? " [deceased]" : " [alive]"); } }