5 Stimmen

Was ist der Unterschied, wenn überhaupt, zwischen Ereignisbehandlung und Ereignislistener?

Wir lesen hier und da, Ereignisbehandlung, Ereignislistener... Ereignisbehandlung/-listener... Objektbehandlung... es ist eine große Verwirrung, die ein Neuling wie ich nicht tolerieren kann.

Kann jemand diese Frage klären: Was ist der Unterschied, wenn überhaupt, zwischen Ereignisbehandler und Ereignislistener?

Vielen Dank, MEM

4voto

Pup Punkte 9866

Zuhörer:
Das Zwischenobjekt, das eine Verbindung zwischen einer Aktivitätsquelle und einer Reaktion auf diese Aktivität herstellt.
Der Lebenszyklus eines Zuhörerobjekts:

  1. Abonnieren eines Handlers, der aufgerufen wird, wenn ein Ereignis von einer Ereignisquelle veröffentlicht wird.
  2. Auf ein Ereignis von der Ereignisquelle "hören".
  3. Rufen Sie den Handler auf, wenn dies der Fall ist.

Der Begriff "Zuhörer" kann irreführend sein, da er in den meisten Implementierungen nicht aktiv etwas tut - er fungiert einfach als gespeicherte Zuordnung zwischen einem Ereignis und einem Ereignis-Handler.

Handler:
Ein Objekt (normalerweise eine Funktion), das ein Verhalten bereitstellt, das ausgeführt wird, wenn ein abonniertes Ereignis veröffentlicht wird.

(Siehe Wikipedia's "Beobachtermuster")
(Siehe Wikipedia's "Ereignis-Handler")

Wichtige Unterschiede:
Ein Zuhörer reagiert auf eine Ereignisquelle, z.B. Tastatur oder Maus.
Ein Handler reagiert auf ein Ereignis, z.B. Tastendruck oder Mausklick.

0 Stimmen

Das ist genau das, was ich auch von ihnen denke. Tolle Antwort!

1voto

Kangkan Punkte 14327

Der Ereignishandler ist im Grunde ein Delegierter, der auf das Ereignis hört. Der Delegierte wird verwendet, um einen Handler zu schreiben, falls der Programmierer etwas bei einem bestimmten Ereignis tun muss. Für ein bestimmtes Ereignis fungiert der Hörer als Auslöser, um den tatsächlichen Handler-Code auszulösen.

Mehr dazu können Sie hier lesen:

http://msdn.microsoft.com/en-us/library/aa645739%28VS.71%29.aspx

und

http://blog.monstuff.com/archives/000040.html

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X