Ich habe einen Agenten, der auf bestimmte Bedingungen überwacht. Für jede Bedingung möchte ich einen anderen Beobachter benachrichtigen, weil die Verantwortung für diese Bedingung beim Beobachter liegt.Was ist der beste Weg, um Beobachtermuster für viele Typen zu implementieren?
Die Methode für einen einzelnen Beobachter/Subjekt in C++, laut Wikipedia, ist eine virtuelle Klasse (ähnlich einer Java-Schnittstelle), die die Update-Methode für den Observer definiert und die Registermethode definiert für das Thema. Jede konkrete Klasse erbt dann ihre jeweilige Schnittstelle.
Ich kann jedoch vorstellen, dass dies für eine beliebige Anzahl von Bedingungen auftritt, von denen jede eine andere Schnittstelle und eine konkrete Beobachterklasse für jede neue Bedingung benötigt. Macht eine Art Design Sinn? Und klingt es vernünftig, für jede neue Bedingung eine Beobachterschnittstelle hinzuzufügen?
Ah, richtig, es ist sehr ähnlich zu dem Windows-Event-Modell, um darüber nachzudenken. –