JavaBean

JavaBean on Java-ohjelmointikielellä toteutettu uudelleenkäytettävä ohjelmakomponentti, joita käytetään tiedon käsittelyyn. JavaBeanit ovat tavallisia luokkia, jotka noudattavat tiettyä nimeämiskäytäntöä. Nimeämiskäytännön noudattaminen mahdollistaa JavaBeanien sisältämän tiedon yhtenäisen käsittelyn erilaisissa työkaluissa.

JavaBeaneilla on kolme pääasiallista kriteeriä:

 Luokalla pitää olla julkinen oletusrakentaja; esimerkiksi luokalla Luokka pitää olla rakentaja public Luokka(). Tämä mahdollistaa luokkien instantaation työkaluissa.
 Luokan jäsenmuuttujien pitää olla luettavissa ja asetettavissa get/set-metodien kautta, ja näiden tulee olla nimetty tietyn kaavan mukaan. Esimerkiksi jäsenmuuttuja protected String nimi pitää olla luettavissa metodin public String getNimi() kautta, ja asetettavissa metodin public void setNimi(String nimi) kautta. Tämä mahdollistaa olion tietojen muuttamisen työkaluissa.
 Luokan pitää olla serialisoitavissa (implements java.io.Serializable). Tämä mahdollistaa olion tilan siirtämisen eri työkalujen välillä.

JavaBean ei ole ohjelmistokirjasto tai koodissa määritelty rajapinta, vaan pohjautuu kokonaan sovittuun käytäntöön.

Java

Ominaisuudet
Introspektio
introspektio on prosessi, jossa Beania analysoidaan sen kykyjen määrittämiseksi. Tämä on Java Beans -määrityksen olennainen ominaisuus, koska sen avulla toinen sovellus, kuten suunnittelutyökalu, voi saada tietoja komponentista.
Ominaisuudet
Ominaisuus on Beanin tilan osajoukko. Ominaisuuksille määritetyt arvot määrittävät kyseisen komponentin käyttäytymisen ja ulkonäön. Ne asetetaan setteri-menetelmällä ja ne voidaan saada getteri-menetelmällä.
Muokkaus
Mukauttaja voi tarjota vaiheittaisen oppaan, jota prosessin on noudatettava käyttääkseen komponenttia tietyssä kontekstissa.
Tapahtumat
Beanit voivat olla vuorovaikutuksessa EventObject EventListener mallin kanssa.
Pysyvyys
Pysyvyys on kyky tallentaa Beanin nykyinen tila, mukaan lukein Beanin ominaisuuksien arvot ja instanssimuuttujat pysyvään tallennustilaan ja hakea ne myöhemmin.
Metodit
Beanin tulee käyttää apumenetelmiä ominaisuuksien säilömiseen. Bean voi tarjota muita menetelmiä liiketoimintalogiikkaan, jotka eivät liity ominaisuuksien käyttöön

Hyödyt
 Beanin ominaisuudet, tapahtumat ja metodit voidaan nähdä toisessa sovelluksessa.
 Bean voi rekisteröityä vastaanottamaan tapahtumia muista objekteista ja voi generoida tapahtumia joita lähetetään näille muille objekteille.
 Apuohjelmistoa voidaan käyttää auttamaan beanin konfiguroimiseen
 Beanin konfiguraatioasetukset voidaan tallentaa pysyvään tallennustilaan ja palauttaa sieltä.

Haitat
 Luokka, jossa on nolla argumentti konstruktööriä, instantoituu virheelliseen tilaan. Jos kehittäjä instantoi tälläisen luokan manuaalisesti (eikä automaattisesti jonkinlaisen kehyksen avulla), kehittäjä ei ehkä ymmärrä, että luokka on ilmennyt väärin. Kääntäjä ei voi havaita tälläistä ongelmaa, ja vaikka se olisi dokumentoitu, ei ole taattu sitä, että kehittäjä näkee dokumentaation.
 JavaBeanit ovat luonnostaan muuttuvia, joten niiltä puuttuu muuttumattomien objektien. tarjoamat edut.
 Gettereiden tekeminen jokaiselle ominaisuudelle ja setterit monille tai kaikille niistä voi johtaa valtavaan määrään vakiokoodia.

JavaBeans API
JavaBeans-toiminnallisuuden tarjoavat joukko luokkia ja käyttöliittymiä java.beans paketissa.