Universität Bonn, Seminar Softwaretechnologie WS 2003/2004, Frank Reichartz 1 Java Beans A Java...
-
Upload
lies-kemnitz -
Category
Documents
-
view
111 -
download
4
Transcript of Universität Bonn, Seminar Softwaretechnologie WS 2003/2004, Frank Reichartz 1 Java Beans A Java...
Universität Bonn, Seminar Softwaretechnologie WS 2003/2004, Frank Reichartz 1
Java Beans
„A Java Bean is a reusable software component that can be visually manipulated in builder tools“ Visuelle Entwicklungsumgebung
Komplett visuell Visuelle Verbindung mit Sourcecode Einfache Skriptsprache (z.B. JSP)
Motivation Wieder verwendbare Software Komponenten
Leicht veränderbar, da visuell bearbeitbar Kaum Unterschiede zu Java-Klassen
Plattformunabhängig, da auf Java basierend Bestandteil des JDK: package java.beans
Universität Bonn, Seminar Softwaretechnologie WS 2003/2004, Frank Reichartz 2
Java Beans - Typen
Visuelle Beans ist visuell (GUI) darstellbar Buttons, Textfelder, etc. z.B. SWING, AWT Eigenschaften visuell-
veränderbar abgeleitet von
java.awt.Component
Nicht Visuelle Beans Hat keine Darstellung (GUI) Datenbank Anbindungs-
Beans, Sortier-Beans, Timer, etc
Eigenschaften Visuell-veränderbar
Platzhalter-Symbol in Entwicklungsumgebung
Universität Bonn, Seminar Softwaretechnologie WS 2003/2004, Frank Reichartz 3
Grundlagen von Java Beans
Selbstbeobachtung (Introspection) Analysierbarkeit von außen Analyse des eigenen Kontextes
Eigenschaften (Properties) Attribute beschreiben den Zustand des Beans Spezielle Zugriffmethoden (Property-Programmierkonventionen)
Ereignisse (Events) Auslösbarkeit von Ereignissen (Java 1.1 Modell)
Anpassung (Customization) Änderung von Eigenschaften visuell bzw. interaktiv
Speicherung (Persistenz) Speicher bzw. Ladbarkeit von Beans
Universität Bonn, Seminar Softwaretechnologie WS 2003/2004, Frank Reichartz 4
METHODEN
Java Bean Darstellung
JAVA BEAN
EIGENSCHAFTEN
EREIGNISSE
CUSTOMIZER
HDPERSISTENZ
BEANINFO
Universität Bonn, Seminar Softwaretechnologie WS 2003/2004, Frank Reichartz 5
Java Beans Design Vorschriften
Öffentlicher Konstruktor ohne Parameter
Implementation von java.io.Serializable
Javabeans Programmierkonventionen Get / Set – Methoden für Eigenschaften Add / Remove – Methoden für Ereignisse
„Multitasking Umgebungssicher“ Thread Sicherheit
Universität Bonn, Seminar Softwaretechnologie WS 2003/2004, Frank Reichartz 6
Eigenschaften (Properties) Zugriffsarten
Zugriff durch get bzw. set Methode getValue() bzw. setValue(1234)
Zugriff während der Anpassung (Customization) Visuelle Entwicklungsumgebung durch
Property Editor Property Sheet
Direkter Zugriff in Scriptumgebung (JSP etc) B.value = 1234
Zugriff als wäre es Variable Aufruf der set bzw. get methode implizit
Universität Bonn, Seminar Softwaretechnologie WS 2003/2004, Frank Reichartz 7
Eigenschaften (Properties) Typen
Einfache Eigenschaften (Simple Properties) int, string, boolean, etc.
Indizierte/Indexierte Eigenschaften (Indexed-Properties) Zusammenfassung gleicher Eigenschaften in Arrays
Gebundene Eigenschaften (Bound-Properties) Informierung der angemeldeten Komponenten über Änderung
eingeschränkte Eigenschaften (Constraint-Properties) vor Änderung Informierung der angeschlossen Komponenten die
evtl. „Veto“ einlegen können
Universität Bonn, Seminar Softwaretechnologie WS 2003/2004, Frank Reichartz 8
Simple-Properties (Einfache Eigenschaften)
Programmierkonvention public <PropertyTyp> getXXX() public void setXXX
(<PropertyTyp> wert )
Nicht notwendigerweise set und get Methode
Zugriffs- & Integritätsprüfung in diesen Methoden möglich
Zugriff auf Eigenschaften nur durch diese Methoden
Bei boolschen Wert isXXX() möglich
RECHTECK
Color Farbe;
…
getFarbe();
setFarbe(Color neu);
…
Name
Eigenschaften
Methoden
Universität Bonn, Seminar Softwaretechnologie WS 2003/2004, Frank Reichartz 9
Indexed-Properties (Indizierte Eigenschaften)
Programmierkonvention public <PropertyTyp> [ ] getXXX() public <PropertyTyp> getXXX( int index ) public void setXXX( <PropertyTyp> [ ]
werte ) public void setXXX( <PropertyTyp> wert,
int index )
Wie Einfache-Eigenschaften
Index um Zugriff auf Elemente des Feldes zu bekommen
DOPPELBOX
Color[ ] Farben;
…getFarben();
setFarben(Color[ ] neu);
getFarben(int index)
setFarben(Color neu, int index)
Universität Bonn, Seminar Softwaretechnologie WS 2003/2004, Frank Reichartz 10
Ereignisse (events)
BEAN
addXXListener (…)
Objekt
Objekt
Objekt
Trägt sich einEVENT ObjEVENT ObjEVENT Obj
Universität Bonn, Seminar Softwaretechnologie WS 2003/2004, Frank Reichartz 11
Ereignisse (events)
Basiert auf dem Java Event Model Sender / Listener - Modell Bean muss Listener verwalten
z.B. durch java.util.Vector
Programmierkonvention für Multicast (mehrere Listener) public void add<EventListenerType>(<EventListenerType> listener) public void remove<EventListenerType>(<EventListenerType> list.)
Unicast (ein Listener) public void add<EventListenerType>(...) throws
java.util.TooManyListenersException
Universität Bonn, Seminar Softwaretechnologie WS 2003/2004, Frank Reichartz 12
Bound-Properties (Gebundene Eigenschaften)
SENDER
Property -Changesupport changes;
Object wert;
EMPFÄNGER
addP.C.Listener()Trägt sich ein
Implementiert Property-
ChangesListener
propertyChange (ChangeEvent evt)
getWert()
setWert(Obj new)
Feuert Event
Universität Bonn, Seminar Softwaretechnologie WS 2003/2004, Frank Reichartz 13
Bound-Properties
Basiert auf Simple bzw. Indexed Eigenschaften set / get Methode vorhanden Funktionsumfang erweitert
PropertyChangeSupport wird instanziert add/removePropertyChangeListener werden implementiert mehre interessierte Listener können sich eintragen (Multicast)
(Unicast) auch möglich
Set Methode der Eigenschaft informiert Listener ruft firePropertyChange Methode auf
feuert Event nach Änderung des internen Zustandes
Universität Bonn, Seminar Softwaretechnologie WS 2003/2004, Frank Reichartz 14
Constained-Properties(Eingeschränkte Eigenschaften)
SENDER
Vetoable-Changesupport changes;
Object wert;
addV.CListener
getWert()
EMPFÄNGER
vetoableChange (ChangeEvent evt)
Implementiert vetoable-
ChangeListener
getWert()
setWert(Obj new)
Feuert Event entscheidet ob Änderung
stattfinden darf
Universität Bonn, Seminar Softwaretechnologie WS 2003/2004, Frank Reichartz 15
Constained-Properties
Listener können „VETO“ zu Änderung einlegen Sonst wie Bounded Properties Listener können „Veto“ einlegen zu Änderung
set Methode wirft PropertyVetoException
VetoableChangeSupport wird instanziert add / removeVetoableChangeListener wird implementiert Multicast
Set Methode informiert eingetragene Listener Meistens gekoppelt mit Gebundenen Eigenschaften „feuert“ Event vor Änderung des internen Zustandes
Universität Bonn, Seminar Softwaretechnologie WS 2003/2004, Frank Reichartz 16
Selbstbeobachtung (Introspection)
Entwicklungsumgebung analysiert Bean benutzt „low level reflection“ erhält Informationen über öffentliche Schnittstellen der Bean Programmierkonventionen nötig um
Eigenschaften Ereignisse Methoden
unterscheiden zu können
Auch Angabe der Schnittstellen durch Programmierer möglich BeanInfo Klasse
Universität Bonn, Seminar Softwaretechnologie WS 2003/2004, Frank Reichartz 17
Anpassung (Customization)
Property-sheet Änderungen der Eigenschaften visuell über get/set – Methoden realisiert
Property-Editoren in meisten IDEs vorgefertigte Editoren für Standard Typen
color, string, integer, boolean, etc
kann auch bei eigenen Typen selbst erstellt werden
Customizer komplexe Bean, z.B. Tabellenkalkulation z.B. Wizard, der das Anpassen der Bean erleichtert
kann jede gewünscht GUI Funktionalität haben
Universität Bonn, Seminar Softwaretechnologie WS 2003/2004, Frank Reichartz 18
Persistenz (Speicherung)
Beans können ihren internen Zustand speichern implementieren java.io.Serializable Speicherung z.B. im XML Format java.beans beinhaltet Methoden die dies leisten
java.beans.XMLdecoder
Beans können sich aus einer Datei selbst initialisieren Bean wird in einem Builder angepasst und gespeichert aus dieser Datei kann der ursprünglichen Zustand der Bean
wiederhergestellt werden
Universität Bonn, Seminar Softwaretechnologie WS 2003/2004, Frank Reichartz 19
Speicherung der Beans
Speicherung in JAR (Java ARchive) Manifest Datei nötig (.mf)
beschreibt was in der JAR Datei steht
gehört zum JDK
Visuelle Entwicklungsumgebungen für Beans öffnen JAR Datei analysieren Manifest bindet Beans aus JAR Datei ein
Universität Bonn, Seminar Softwaretechnologie WS 2003/2004, Frank Reichartz 20
Arbeiten mit Java Beans
Kaufen oder Programmieren der Beans
Zusammenstellung der Beans Bean-Builder Von Hand programmiert
Speichern der Zusammenstellung durch Builder Serialisierung der internen Zustände der Beans Speicherung der Verbindungen
Eingetragene Listener, etc. Aufgabe des Builders
Universität Bonn, Seminar Softwaretechnologie WS 2003/2004, Frank Reichartz 21
Java Bean Builder
Sun Beanbuilder 1.0 beta Frei erhältlich Eher zu Demonstrations-Zwecken geeignet
Borland JBuilder Personal Edition frei erhältlich Komplette Entwicklungsumgebung Viele Komponenten vordefiniert Entwicklung jeder Art von Java-Programmen möglich
Universität Bonn, Seminar Softwaretechnologie WS 2003/2004, Frank Reichartz 22
Vor-/Nachteile von JavaBeans
Vorteile „write once, run
everywhere“ Introspektion Umfangreiche Bibliotheken Dynamisches Nachladen
von Klassen
Nachteile kein Komponentenmodell,
sondern … Nicht echtzeitfähig Interpretierter bytecode
Langsam
Kaum Unterstützung bei der Komponenten-Erzeugung