29-07-2023
JavaBeans — классы в языке Java, написанные по определённым правилам. Они используются для объединения нескольких объектов в один (англ. bean — фасоль, кофейное зерно) для удобной передачи данных.
Спецификация Sun Microsystems определяет JavaBeans как повторно используемые программные компоненты, которыми можно управлять, используя графические конструкторы и средства IDE.
JavaBeans обеспечивают основу для многократно используемых, встраиваемых и модульных компонентов ПО. Компоненты JavaBeans могут принимать различные формы, но наиболее широко они применяются в элементах графического пользовательского интерфейса. Одна из целей создания JavaBeans — взаимодействие с похожими компонентными структурами. Например, Windows-программа, при наличии соответствующего моста или объекта-обёртки, может использовать компонент JavaBeans так, будто бы он является компонентом COM или ActiveX.
Чтобы класс мог работать как bean, он должен соответствовать определённым соглашениям об именах методов, конструкторе и поведении. Эти соглашения дают возможность создания инструментов, которые могут использовать, замещать и соединять JavaBeans.
Правила описания гласят:
public
. Такой конструктор позволяет инструментам создать объект без дополнительных сложностей с параметрами.get
, set
и другие методы (так называемые методы доступа), которые должны подчиняться стандартному соглашению об именах. Это легко позволяет инструментам автоматически определять и обновлять содержание bean’ов. Многие инструменты даже имеют специализированные редакторы для различных типов свойств.Так как требования в основном изложены в виде соглашения, а не интерфейса, некоторые разработчики рассматривают JavaBeans, как Plain Old Java Objects, которые следуют определённым правилам именования.
// PersonBean.java public class PersonBean implements java.io.Serializable { private String name; private boolean deceased; // Конструктор по умолчанию (без аргументов). public PersonBean() { } public String getName() { return (this.name); } public void setName(String name) { this.name = name; } // Различные семантики для логического поля (is или get) public boolean isDeceased() { return (this.deceased); } public void setDeceased(boolean deceased) { this.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]"); } }
JavaBean.