Autor Beitrag
relapse
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 50



BeitragVerfasst: Mi 25.07.12 13:49 
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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4708
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 50



BeitragVerfasst: 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?