JavaBeans
Z Wikipedii
JavaBeans - komponenty programowe dla środowiska Java opracowane w latach 90. przez firmę Sun Microsystems, będące niezależnymi modułami wywoływanymi i uruchamianymi w programach Java.
Specyfikacja JavaBeans firmy Sun definiuje je jako: "wielokrotnie używalne komponenty software'owe które mogą być manipulowane wizualnie przez narzędzia budujące [oprogramowanie]"
Stosowane początkowo wyłącznie do tworzenia interfejsów programowych po stronie klienta, doczekały się też swoich odpowiedników po stronie serwera - Enterprise JavaBeans. Mimo podobnej nazwy Enterprise JavaBeans realizuja jednak zasadniczo różną technologię: rozszerzają one model komponentów JavaBeans o programowanie transakcyjne i komunikację w otoczeniu rozproszonym.
[edytuj] Konwencje dla JavaBeans
Aby klasa mogła być używana jako JavaBean zamiast stosowania normalnych technik obiektowych (dziedziczenie czy interfejsy jak n.p. w technologii OLE firmy Microsoft) musi ona przestrzegać pewnych konwencji w stosunku do nazw swoich metod, swojej konstrukcji i zachowania. Dzięki tym konwencjom narzędzia programistyczne wiedzą w jaki sposób JavaBean'y mogą być stosowane, manipulowane i wzajemnie łączone.
Lista Konwencji:
- Klasa musi być serializowalna (tj. musi dać się zapisać do pamięci zewnętrznej a potem znowu z niej wczytać)
- Klasa musi mieć bezparametrowy konstruktor (ang. no-argument constructor)
- Klasa musi eksportować swoje własności (ang. properties) za pomocą metod get() i set(), a jej inne metody muszą stosować się do pewnych konwencji nazewniczych
- Klasa musi zawierać pewne wymagane metody obsługi zdarzeń (ang. event-handling)
Aby udostępnić obsługę wymaganych zdarzeń, klasa JavaBean jest jednak zmuszona do używania pewnych standardowych klas i interfejsów, tak że w tym punkcie nie ogranicza się ona tylko do nazywania swoich metod zgodnie z przepisaną konwencją! Przykładem zdarzenia jest zmiana tzw. "własności związanej": w tym wypadku muszą być o tym zdarzeniu poinformowane inne obiekty tzw. obserwatorzy. Przy zmianie tzw. "własności ograniczonej" obserwatorzy mogą zgłosić veto.
Najważniejsze pakiety graficzne dla języka Java jak AWT, Swing i SWT używają konwencji JavaBeans w swoich komponentach, co pozwala edytorom interfejsów graficznych (GUI) jak n.p. Eclipse Visual Editor, na wizualizację ich wewnętrznych parametrów przez standardowe metody JavaBeans: get() i set().
[edytuj] Przykład
// KtosikBean.java
public class KtosikBean implements java.io.Serializable // -> konwencja 1. { private String nazwisko; private boolean programista;
// Default constructor -> konwencja 2. public KtosikBean() {}
// get/set -> konwencja 3. public String getNazwisko() { return this.nazwisko; } public void setNazwisko(String nazwisko) { this.nazwisko = nazwisko; }
// get dla zmiennych boolowskich to: is! public boolean isProgramista() { return this.programista; } public void setProgramista(boolean programista) { this.programista = programista; } }