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.

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ällaisen 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ällaista ongelmaa, ja vaikka se olisi dokumentoitu, ei ole taattu sitä, että kehittäjä näkee dokumentaation.
 JavaBeanit ovat luonnostaan muuttuvia, joten niiltä puttuu 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.
 Käyttöliittymä  kuvaus AppletInitializer  Tämän käyttöliittymän menetelmiä käytetään Beanin alustamiseen, jotka ovat myös java sovelmia. BeanInfo  Tämän käyttöliittymän avulla suunnittelija voi määrittää tietoja Beanin tapahtumista, metodeista ja ominaisuuksista Customizer  Tämän käyttöliittymän avulla suunnittelija voi tarjota graafisen käyttöliittymän, jonka kautta Bean voidaan konfiguroida DesignMode  Tämän käyttöliittymän metodit määrittävät, suoritetaanko Bean suunnittelutilassa ExceptionListener  Tämän käyttöliittymän metodeita kutsutaan, kun poikkeus on tapahtunut. PropertyChangeListener  Tämän käyttöliittymän menetelmä kutsutaan, kun sidottu ominaisuus muutetaan PropertyEditor  Tämän käyttöliittymän toteuttavat objektit antavat suunnittelijalle mahdollisuuden muuttaa ja näyttää ominaisuusarvoja VetoableChangeListener  Tämän käyttöliittymän menetelmä kutsutaan, kun Constrained-ominaisuutta muutetaan Visibility  Tämän käyttöliittymän menetelmät mahdollistavat Beanin suorittamisen ympäristöissä, joissa graafinen käyttöliittymä ei ole käytettävissä

 Lähteet 

Luokka:Java