Введение

Разработчик вычислительных технологий от Sun Microsystems

В вычислительных системах, основанных на платформе Java, JavaBeans – это технология, разработанная Sun Microsystems и выпущенная в 1996 году как часть JDK 1.1. "Beans" (компоненты) JavaBeans – это классы, которые инкапсулируют один или несколько объектов в единый стандартизированный объект (компонент). Эта стандартизация позволяет обрабатывать компоненты более универсальным способом, облегчая повторное использование кода и интроспекцию. В свою очередь, это позволяет рассматривать компоненты как программные компоненты и манипулировать ими визуально с помощью редакторов и IDE без необходимости предварительной конфигурации или знания деталей внутренней реализации. В рамках стандартизации все компоненты должны быть сериализуемыми, иметь конструктор без аргументов и обеспечивать доступ к свойствам с помощью методов getter и setter.

Преимущества

Свойства, события и методы компонента могут быть доступны для другого приложения. Компонент может подписываться на получение событий от других объектов и генерировать события, которые отправляются этим объектам. Для настройки компонента может быть предоставлено вспомогательное программное обеспечение. Настройки конфигурации компонента могут быть сохранены в постоянном хранилище и восстановлены.

Недостатки

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

JavaBeans API

Функциональность JavaBeans обеспечивается набором классов и интерфейсов в пакете java.beans. Интерфейс Описание AppletInitializer Методы этого интерфейса используются для инициализации компонентов, которые также являются апплетами. BeanInfo Этот интерфейс позволяет разработчику указывать информацию о событиях, методах и свойствах компонента. Customizer Этот интерфейс позволяет разработчику предоставлять графический пользовательский интерфейс для настройки компонента. DesignMode Методы этого интерфейса определяют, выполняется ли компонент в режиме проектирования. ExceptionListener Метод этого интерфейса вызывается при возникновении исключения. PropertyChangeListener Метод этого интерфейса вызывается при изменении связанного свойства. PropertyEditor Объекты, реализующие этот интерфейс, позволяют разработчику изменять и отображать значения свойств. VetoableChangeListener Метод этого интерфейса вызывается при изменении свойства с ограничениями. Visibility Методы этого интерфейса позволяют компоненту выполняться в средах, где графический интерфейс недоступен.