Entwickler-Ecke

C# - Die Sprache - Austausch von Daten via Ereignisse


relapse - Mi 25.07.12 13:49
Titel: Austausch von Daten via Ereignisse
Hallo, eine neue Frage von mir: Kann man Daten zwischen mehreren Klassen via Ereignisse hin und her schieben, ohne dass die Klassen voneinander wissen? Das einzige, was den Klassen bekannt sein soll, ist der Datentyp des Austauschobjekts. Ist es möglich?

Danke!


Ralf Jansen - Mi 25.07.12 13:55

Natürlich kannst du über einen Event beliebige Daten austauschen. Aber den Eventsender und EventEmpfänger musst du immer noch irgendwo verdrahten. Wenn du nicht willst das sich die beiden gegenseitig kennen kann das verdrahten auch ein Dritter übernehmen (Stichwort EventBroker Pattern).


relapse - Mo 30.07.12 10:07

Ich hab' mir das folgendermaßen vorgestellt: die Klasse, die ein Ereignis auslöst, implementiert eine Schnittstelle, wo dieses Ereignis deklariert ist. Diese Schnittstelle wird der Klasse, die das Ereignis weiterleiten soll (dem Event-Broker), über Injection als Parameter im Konstruktor übergeben. Und der Event-Broker implementiert dann auch eine Schnittstelle, wo das weiterzuleitende Ereignis deklariert wird. Und diese Schnittstelle wird wiederrum dem Endempfänger in seinem Konstruktor übergeben.

So sollte gewährleistet werden, dass die Sender- und die Empfänger-Klassen nichts voneinander wissen. Kann man diese Vorgehensweise als richtig betrachten?