cloidnerux hat geschrieben:Im Grunde genommen hast du eine Liste an Funktionspointern, die bei einem Bestimmten Ereignis aufgerufen werden.
Das heißt, du könntest dir eine Hilfsklasse "event" programmieren, die eine Liste für Funktionspointer enthält, eine Methode zum Hinzufügen und Entfernen von Funktionspointern und eine Methode zum Starten mit entsprechenden Parametern. Diese klasse kannst du dann für jeden Zweck spezialisieren.
Das wäre ein Event-Handler, der ein einziges Ereignis an beliebig viele Listener übermittelt.
Statt einer einzelnen Funktion, lässt sich alternativ aber auch ein Listener Objekt konstruieren. Das wäre eine abstrakte Klasse, die von den Empfängern der Nachricht implementiert wird. Der Sender erhält so die Kontrolle und ruft nur noch die Funktionen des Empfänger-Objektes auf. Das Empfängerobjekt hat damit also auch keine Kontrolle darüber, was rundum passiert.
Möglichkeit 3 habe ich kürzlich ins Repository eingecheckt: Man fragt den Sender, ob es schon was Neues gibt. Der Sender liefert einen Hinweis darauf, was anliegt und überlässt dem Empfänger die Nachricht zu bearbeiten oder es sein zu lassen.
In Kombination mit cloidnerux Liste ergibt sich so die Möglichkeit viele Empfänger mit vielen Ereignissen zu versorgen. Da wir aber vermutlich hinter jeder Oberfläche nur ein Programm laufen haben, können wir uns vermutlich auch auf einen Empfänger beschränken.
Bebu hat geschrieben:PS: @Xin: Die Abwesenheit ist hiermit noch nicht aufgehoben
Heißt das, ich hätte die Frage noch nicht beantworten dürfen?

Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.
Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.