Из Википедии, свободной энциклопедии
Перейти к навигации Перейти к поиску

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

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

Особенности [ править ]

Самоанализ
Самоанализ - это процесс анализа Бина для определения его возможностей. Это важная функция Java Beans API, поскольку она позволяет другому приложению, например средству проектирования, получать информацию о компоненте.
Характеристики
Свойство - это подмножество состояния Бина. Значения, присвоенные свойствам, определяют поведение и внешний вид этого компонента. Они устанавливаются с помощью метода установки и могут быть получены с помощью метода получения.
Настройка
Настройщик может предоставить пошаговое руководство, которому должен следовать процесс, чтобы использовать компонент в определенном контексте.
События
Компоненты могут взаимодействовать с моделью EventObject EventListener. [ требуется разъяснение ]
Упорство
Постоянство - это способность сохранять текущее состояние Бина, включая значения свойств Бина и переменных экземпляра, в энергонезависимое хранилище и извлекать их позже.
Методы
Компонент должен использовать методы доступа для инкапсуляции свойств. Компонент может предоставлять другие методы для бизнес-логики, не связанные с доступом к свойствам.

Преимущества [ править ]

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

Недостатки [ править ]

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

API JavaBeans [ править ]

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

Соглашения JavaBean [ править ]

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

Требуются следующие условные обозначения:

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

Пример кода [ править ]

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

TestPersonBean.java:

импортировать  player.PersonBean ;/ ** * Класс «TestPersonBean». * / public  class  TestPersonBean  {  / **  * Метод тестера main для класса PersonBean.  *  * @param arguments  * /  public  static  void  main ( final  String []  arguments )  {  final  PersonBean  person  =  new  PersonBean (); человек . setName ( "Боб" );  человек . setDeceased ( ложь );  человек . setList ( новый  ArrayList ()); // Вывод: "Боб [жив]"  Система . из . печать ( человек . getName ());  Система . из . println ( person . isDeceased ()  ?  "[умерший]"  :  "[живой]" );  } }
<jsp: useBean  id = "person"  class = "player.PersonBean"  scope = "page" /> <jsp: setProperty  name = "person"  property = "*" /><html>  <body> Имя: <jsp: getProperty  name = "person"  property = "name" /> <br/> Умер? <jsp: getProperty  name = "person"  property = " deceased " /> <br/>  <br/>  <form  name = "beanTest"  method = "POST"  action = "testPersonBean.jsp" > Введите имя: <input  type = "text"  name = "name"  size = "50" > <br/> Выберите опцию: <select  name = "deceased" >  <option  value = "false" > Жив </option>  <option  value = "true" > Dead </option>  </select>  <input  type = "submit"  value = "Протестируйте Бин " >  </form>  </body> </html>

Ссылки [ править ]

  1. ^ a b Блох, Джошуа (2008). Эффективная Java (Второе изд.). Эддисон-Уэсли. п. 13 . ISBN 978-0-321-35668-0.

Внешние ссылки [ править ]

  • Руководства Oracle по JavaBeans
  • Спецификация JavaBeans