Observer Pattern: Unterschied zwischen den Versionen

aus GlossarWiki, der Glossar-Datenbank der Fachhochschule Augsburg
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Zeile 5: Zeile 5:
von Nachrichten. Diese Nachrichten werden meist durch einen Benutzer ausgelöst.
von Nachrichten. Diese Nachrichten werden meist durch einen Benutzer ausgelöst.
   
   
===Bemerkungen==
==Bemerkungen==
Für das Wort Nachricht werden oft Event und Ereignis synonym benutzt.
Für das Wort Nachricht werden oft Event und Ereignis synonym benutzt.
Nicht nur Benutzer sondern auch Objekte selber oder das Betriebssystem können Nachrichten verschicken.
Nicht nur Benutzer sondern auch Objekte selber oder das Betriebssystem können Nachrichten verschicken.

Version vom 22. September 2016, 15:02 Uhr

Dieser Artikel wird derzeit von einem Autor gründlich bearbeitet. Die Inhalte sind daher evtl. noch inkonsistent.

Definition

Unter Eventhandling (Ereignisverarbeitung) versteht man die asynchrone Verarbeitung von Nachrichten. Diese Nachrichten werden meist durch einen Benutzer ausgelöst.

Bemerkungen

Für das Wort Nachricht werden oft Event und Ereignis synonym benutzt. Nicht nur Benutzer sondern auch Objekte selber oder das Betriebssystem können Nachrichten verschicken. Für interaktive Anwendungen ist ein gut funktionierendes Eventhandling sehr wichtig.

Beispiele

Anschauliche Beispiele für Events, auf welche die Anwendung reagieren soll:

Auswählen eines Menüpunkts, Minimieren eines Fensters etc.

Als Beispiel aus dem realen Leben kann die zwischenmenschliche Kommunikation betrachtet werden. Die Mutter (Event-Source) schickt an ihren Sohn (Event-Listener) die Nachricht (Event) "Alex, das Essen ist fertig, komm doch zu uns". Weil der Sohn im Laufe der Jahre (hoffentlich) gelernt hat, wie er auf diese Nachricht am besten reagieren soll, unterbricht er sein Spiel und setzt sich mit den Eltern an den Tisch.

Technische Realisierung

An dem Eventhandlingmechanismus sind folgenden drei Elemente beteiligt:

  • eine Eventquelle (event dispatcher, subject) ist ein Objekt, das Nachrichten generiert, z. B. ein Button.
  • ein Eventlistener (event handler, observer) ist ein Objekt, welches auf Nachrichten reagieren möchte. Nach Betätigung eines Buttons könnte z.B. ein Textfeld (Eventlistener) einen neuen Text anzeigen.

Üblicherweise muss ein Eventlistener erst bei einer Eventquelle erst registriert werden, damit er bei einem Event benachrichtigt wird. Das kann man mit Anmeldung bei einem E-Mail-Dienst vergleichen: Nur wenn man sich angemeldet hat, bekommt man ein Newsletter.

Die Eventquelle generiert eine Nachricht und schickt sie an alle Eventlistener, die dafür angemeldet sind. Dabei spricht man von Multicast-Mechanismus.

Quellen

  • Heinisch C., Müller F., Goll J. (2005): Java als erste Programmiersprache