22.5 Worauf JavaBeans basieren
Wir haben mit dem BDK erste Bekanntschaft mit Komponenten gemacht und wollen uns nun damit beschäftigen, welche Java-Technologien hinter den Beans stecken und wie wir damit selbst Beans entwickeln können. Wichtige Merkmale von Beans sind:
|
Selbstbeobachtung (Introspection): Eine Klasse lässt sich von außen auslesen. So kann ein spezielles Programm, wie das BDK oder eine visuelle Entwicklungsumgebung, eine Bean analysieren und ihre Eigenschaften abfragen. Auch umgekehrt kann eine Bean herausfinden, ob sie etwa gerade von einem grafischen Entwicklungswerkzeug modelliert wird oder in einer Applikation ohne GUI Verwendung findet. |
|
Eigenschaften (Properties): Attribute beschreiben den Zustand des Objekts. In einem Modellierungswerkzeug lassen diese sich ändern. Im BDK standen die Eigenschaften etwa in dem Property-Sheet. Da eine Bean meistens eine grafische Komponente ist, besitzt sie etwa eine Hintergrundfarbe. Diese Informationen können von außen durch bestimmte Methoden abgefragt und verändert werden. Ändern wir hier die Hintergrundfarbe im BDK, zeigt die Bean diese sofort an. Für alle Eigenschaften werden spezielle Zugriffsmethoden definiert; sie werden Property-Design-Pattern genannt. |
|
Ereignisse (Events): Wir können die Komponente Ereignisse auslösen lassen, so dass sie Zustandsänderungen und visuelle Interaktionen an andere Beans oder Dienstprogramme weiterleitet. Grundlage für die Ereignisbehandlung ist das Modell von Java 1.1 mit Auslösern und Empfängern. |
|
Anpassung (Customization): Der Bean-Entwickler kann die Eigenschaften einer Bean visuell und interaktiv anpassen. |
|
Speicherung (Persistenz): Jede Bean kann ihren internen Zustand, also die Eigenschaften, durch Serialisierung speichern und wiederherstellen. So kann ein Builder-Tool die Komponenten laden und benutzen. Ein spezieller Externalisierungsmechanismus erlaubt dem Entwickler die Definition eines eigenen Speicherformats, zum Beispiel als XML-Datei. |
Zusätzlich zu den notwendigen Grundpfeilern lässt sich durch Internationalisierung die Entwicklung internationaler Komponenten vereinfachen. Verwendet eine Bean länderspezifische Ausdrücke wie Währungsformate oder Datumsformate, kann der Bean-Entwickler mit länderunabhängigen Bezeichnern arbeiten, die dann in die jeweilige Landessprache übersetzt werden.
Das Komponentenmodell
Das Komponentenmodell für JavaBeans ist eine Sammlung von APIs, die der Entwicklung der Softwarekomponenten dient. Beans können mit dem JDK erstellt werden, eine zusätzliche Bibliothek ist nicht notwendig. Einige neue Entwicklungen wie das Beans-Activation-Framework (JAF) (http://java.sun.com/products/javabeans/glasgow/jaf.html) werden durch ein spezielles javax-Paket abgehandelt, was in diesem Buch allerdings keine Rolle spielt. Mit dem JAF lassen sich beliebige Datentypen erkennen, und auf diese Daten lässt sich mittels einer allgemeinen Technik zugreifen.
|