Proseminar Java Beans Events gehalten von Richard Gottwald Lehrstuhl: Prof. Dr. Dr.h.c. J. Eickel Betreuerin:Mag. Phil. R. Höllerer
Beispiel Fluggesellschaft Reisebüro 1Reisebüro 2Reisebüro 3 Informationsaustausch zwischen Fluggesellschaft und Reisebüros über - Abgelaufene Reservierungen - Anzahl der noch freien Sitzplätze - Neue Flüge
Möglichkeiten der Benachrichtigung Passive Benachrichtigungen Zeitabhängige Benachrichtigungen (Thread) Aktive Benachrichtigungen (Event-Modell)
Passive Benachrichtigungen Andauernde Überprüfung von veränderbaren Objekten Sehr Ressourcenaufwendig Nicht sinnvoll zu implementieren FluggesellschaftReisebüro Andauernde Statusüberprüfung
Zeitgestützte Benachrichtigungen Veränderungen von Objekten werden nach Ablauf einer Zeitperiode weitergegeben Aktualisierung der Beobachter Realisierung mittels Thread –Aufwecken –Aktualisierungsprozess –Stoppen
Aktive Benachrichtigungen Observable – Observer Repeater – Modell Quelle - Unterstützung - Listener Verringerung Nachrichtenverkehr Indirekte Bindung Erweiterbarkeit + Wiederverwendbarkeit
Observer - Observable 3. Relevante Daten laden Reisebüro Observer ObserverAdmin 2. Benachrichtige Observer 4. Reaktion Fluggesellschaft 1. Benachrichtige ObserverAdmin
Observer - Observable Schnittstelle IObserver Aktualisieren ObserverAdmin HinzufuegenObserver LoeschenObserver BenachrichtigenObservers Reisebuero.... Fluggesellschaft.... Observer Aktualisieren *
Observer - Observable Benachrichtigungsvorgang: 1.Neue Reservierung geht beim Reisebüro ein 2.Reisebüro benachrichtigt sein ObserverAdmin 3.Observer zum Aktualisieren veranlassen 4.Observer leiten die relevante Information an die Fluggesellschaft weiter
Repeater FluggesellschaftNationale FlügeInternationale Flüge ObserverAdmin Repeater ObserverAdmin Reisebüro Observer Reisebüro Observer
Repeater ObserverAdmin HinzufuegenObserver LoeschenObserver BenachrichtigenObservers Repeater Aktualisieren Schnittstelle IObserver Aktualisieren 1 1 Observer Aktualisieren 1 0..*
Repeater Benachrichtigungsvorgang: 1.Neuer nationaler Flug wird angeboten 2.Fluggesellschaft benachrichtigt sein ObserverAdmin 3.Benachrichtigung des Repeaters 4.Repeater veranlasst seine ObserverAdmin die Liste von Observern zu durchlaufen 5.Die Observer werden zum Aktualisieren veranlasst 6.Reisebüros erhalten dann die Informationen über den neuen Flug
Bean - Interaktionen Bean PropertyChangeSupport Bean PropertyChangeListener Vgl. zu Observer - Observable Reisebüro ObserverAdmin Observer Fluggesellschaft
Interface PropertyChangeListener propertyChange Bean - Interaktionen PropertyChangeEvent source propertyName oldValue newValue PropertyChangeSupport addPropertyChangeListener removePropertyChangeListener firePropertyChange PropertyChangeListenerI propertyChange EinBean... AnderesBean * 1 1 1
Bean - Interaktionen 1.Veränderung von Beanproperties 2.Bean Erzeugt PropertyChangeEvent – Objekt 3.PropertyChangeSupport leitet diese Objekt an die PropertyChangeListenerI weiter (firePropertyChange) 4.Aktualisierungsvorgang (propertyChange) Benachrichtigungsvorgang:
Quellen Java In a Nutshell Deutsche Ausgabe für Java 1.1 OReilly P. Coad, M. Mayrfield Design mit Java Prentice Hall (1999 )