JavaBeans

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

В вычислениях на основе Платформа Java, JavaBeans - это классы, которые инкапсулируют множество объектов в один объект (bean). Они сериализуемы, имеют конструктор с нулевым аргументом, и разрешить доступ к свойствам с помощью методов получения и установки. Имя "Bean" было дано, чтобы охватить этот стандарт, целью которого является создание повторно используемых программных компонентов для Java.

Это многократно используемый программный компонент, написанный на Java, который можно визуально манипулировать с помощью инструмента построения приложений.

Содержание
  • 1 Возможности
  • 2 Преимущества
  • 3 Недостатки
  • 4 API JavaBeans
  • 5 Соглашения JavaBean
    • 5.1 Пример кода
  • 6 Ссылки
  • 7 Внешние ссылки
Возможности
Интроспекция
Самоанализ - это процесс анализа Бина для определения его возможностей. Это важная функция Java Beans API, поскольку она позволяет другому приложению, например средству проектирования, получать информацию о компоненте.
Свойства
Свойство - это подмножество состояния Bean-компонента. Значения, присвоенные свойствам, определяют поведение и внешний вид этого компонента. Они устанавливаются с помощью метода установки и могут быть получены с помощью метода получения.
Настройка
Настройщик может предоставить пошаговое руководство, которому должен следовать процесс, чтобы использовать компонент в конкретный контекст.
События
Компоненты могут взаимодействовать с моделью EventObject EventListener.
Сохранение
Постоянство - это способность сохранять текущее состояние Бин, включая значения свойств Бина и переменных экземпляра, в энергонезависимое хранилище и для их получения в более позднее время.
Методы
Бин должен использовать методы доступа для инкапсулировать свойства. Бин может предоставлять другие методы для бизнес-логики, не связанные с доступом к свойствам.
Преимущества
  • Свойства, события и методы компонента могут быть доступны другому приложению.
  • Бин может регистрироваться для получения событий от других объектов и может генерировать события, которые отправляются этим другим объектам.
  • Может быть предоставлено вспомогательное программное обеспечение для помощи в настройке bean-компонента.
  • Параметры конфигурации bean-компонента могут быть сохраненным в постоянное хранилище и восстановлено.
Недостатки
  • Класс с конструктором без аргументов может быть создан в недопустимом состоянии. Если такой класс создается вручную разработчиком (а не автоматически какой-либо структурой), разработчик может не осознавать, что класс был создан неправильно. Компилятор не может обнаружить такую ​​проблему, и даже если она задокументирована, нет гарантии, что разработчик увидит документацию.
  • JavaBeans по своей сути изменчивы и поэтому не имеют преимуществ, предлагаемых неизменяемыми объектами.
  • Необходимость создавать геттеры для каждого свойства и сеттеры для многих, большинства или всех из них может привести к огромному количеству шаблонного кода. Это можно смягчить с помощью таких инструментов, как Lombok.
JavaBeans API

Функциональность JavaBeans обеспечивается набором классов и интерфейсов в пакете java.beans.

ИнтерфейсОписание
AppletInitializerМетоды в этом интерфейсе используются для инициализации Bean-компонентов, которые также являются апплетами.
BeanInfoЭтот интерфейс позволяет разработчику указывать информацию о события, методы и свойства Бина.
НастройщикЭтот интерфейс позволяет разработчику предоставлять графический пользовательский интерфейс, с помощью которого можно настраивать компонент.
DesignModeМетоды в этом интерфейсе определяют, выполняется ли компонент в режиме разработки.
ExceptionListenerМетод в этом интерфейсе вызывается при возникновении исключения.
PropertyChangeListenerМетод в этом интерфейсе вызывается при изменении связанного свойства.
PropertyEditorОбъекты, реализующие этот интерфейс, позволяют разработчику изменять и отображать значения свойств.
VetoableChangeListenerМетод в этом интерфейсе вызывается при изменении свойства Constrained.
ВидимостьМетоды в этом интерфейсе позволяют bean-компоненту выполняться в средах, где графический интерфейс недоступен.
Соглашения JavaBean

Для того, чтобы функционировать как JavaBean class, класс объекта должен подчиняться определенным соглашениям об именах, построении и поведении методов. Эти соглашения позволяют иметь инструменты, которые могут использовать, повторно использовать, заменять и подключать Java Beans.

Требуются следующие соглашения:

  • Класс должен иметь общедоступный конструктор по умолчанию (без аргументов). Это позволяет легко создавать экземпляры в рамках редактирования и активации.
  • Свойства класса должны быть доступны с помощью get, set, is (может использоваться для логических свойств вместо get), to и других методов (так называемые методы доступа и методы мутатора ) в соответствии со стандартным соглашением об именах . Это позволяет легко автоматизировать проверку и обновление состояния bean-компонентов в рамках фреймворков, многие из которых включают настраиваемые редакторы для различных типов свойств. Установщики могут иметь один или несколько аргументов.
  • Класс должен быть сериализуемым. (Это позволяет приложениям и инфраструктурам надежно сохранять, хранить и восстанавливать состояние bean-компонента независимо от VM и платформы.)

Пример кода

package player; открытый класс PersonBean реализует java.io.Serializable {/ ** Properties ** / private boolean deceased = false; частный список списка; / ** Свойство "имя", доступно для чтения / записи. * / private String name = null; / ** Конструктор без аргументов (не принимает аргументов). * / public PersonBean () {} public List getList () {return list; } public void setList (окончательный список списка) {this.list = список; } / ** * Получатель для свойства "name". * / public String getName () {возвращаемое имя; } / ** * Установщик для свойства "имя". * * значение @param * / public void setName (конечное строковое значение) {this.name = value; } / ** * Getter для свойства "deceased" * Другой синтаксис для логического поля (является v.s. get) * / public boolean isDeceased () {return deceased; } / ** * Установщик для свойства «умерший». * @param value * / public void setDeceased (логическое значение) {deceased = value; }}

TestPersonBean.java:

импортировать player.PersonBean; / ** * Класс «TestPersonBean». * / public class TestPersonBean {/ ** * Метод тестера "main" для класса "PersonBean". * * @param arguments * / public static void main (final String arguments) {последний PersonBean person = new PersonBean (); person.setName («Боб»); person.setDeceased (ложь); person.setList (новый список ArrayList ()); // Вывод: «Боб [жив]» System.out.print (person.getName ()); System.out.println (person.isDeceased ()? "[Умерший]": "[живой]"); }}
Имя: . Умер? .. 
Введите имя:. Выберите вариант:
Ссылки
Внешние ссылки
Последняя правка сделана 2021-05-24 03:56:23
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте