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ä:

  1. Luokalla pitää olla julkinen oletusrakentaja; esimerkiksi luokalla Luokka pitää olla rakentaja public Luokka(). Tämä mahdollistaa luokkien instantaation työkaluissa.
  2. 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.
  3. 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

muokkaa
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

muokkaa
  • 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

muokkaa
  • Luokka, jossa on nolla argumentti konstruktööriä, instantoituu virheelliseen tilaan.[1] 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.[1] tarjoamat edut.
  • Gettereiden tekeminen jokaiselle ominaisuudelle ja setterit monille tai kaikille niistä voi johtaa valtavaan määrään vakiokoodia.

JavaBeans API

muokkaa

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

muokkaa
  1. a b Bloch, Joshua: Effective Java, s. 13. Second painos. Addison-Wesley, 2008. ISBN 978-0-321-35668-0 Teoksen verkkoversio.