1 / 22

Java Beans

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

milly
Download Presentation

Java Beans

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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

  2. 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 Java Beans - Typen

  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

  4. Java Bean Darstellung CUSTOMIZER JAVA BEAN EIGENSCHAFTEN HD METHODEN PERSISTENZ EREIGNISSE BEANINFO

  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

  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

  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

  8. Programmierkonvention public <PropertyTyp> getXXX() publicvoid 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 Simple-Properties (Einfache Eigenschaften) Name RECHTECK Color Farbe; … Eigenschaften getFarbe(); setFarbe(Color neu); … Methoden

  9. Programmierkonvention public <PropertyTyp> [ ] getXXX() public <PropertyTyp> getXXX(int index ) publicvoid setXXX( <PropertyTyp> [ ] werte ) publicvoid setXXX( <PropertyTyp> wert, int index ) Wie Einfache-Eigenschaften Index um Zugriff auf Elemente des Feldes zu bekommen Indexed-Properties (Indizierte Eigenschaften) DOPPELBOX Color[ ] Farben; … getFarben(); setFarben(Color[ ] neu); getFarben(int index) setFarben(Color neu, int index)

  10. Ereignisse (events) Objekt BEAN Trägt sich ein EVENT Obj EVENT Obj EVENT Obj Objekt addXXListener (…) Objekt

  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

  12. Bound-Properties (Gebundene Eigenschaften) Implementiert Property-ChangesListener SENDER EMPFÄNGER Property -Changesupport changes; Object wert; propertyChange (ChangeEvent evt) Feuert Event Trägt sich ein addP.C.Listener() getWert() setWert(Obj new)

  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

  14. Constained-Properties(Eingeschränkte Eigenschaften) Implementiert vetoable-ChangeListener SENDER EMPFÄNGER Vetoable-Changesupport changes; Object wert; vetoableChange (ChangeEvent evt) addV.CListener Feuert Event entscheidet ob Änderung stattfinden darf getWert() getWert() setWert(Obj new)

  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

  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

  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

  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

  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

  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

  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

  22. 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 Vor-/Nachteile von JavaBeans

More Related