Wenn Sie ein Objekt mit untergeordneten Objekten modellieren, ist es üblich, die untergeordneten Objekte über die Komposition als Mitglied der übergeordneten Klasse einzuschließen. Manchmal müssen die Kinder dem Elternteil jedoch etwas mitteilen, sie müssen eine Funktion des Elternteils aufrufen. Wie kann dies mit C ++ erreicht werden? Einige Optionen sind:
Machen Sie die übergeordnete Klasse global, damit die untergeordneten Objekte Elementfunktionen des übergeordneten Objekts aufrufen können.
Injizieren Sie das übergeordnete Objekt als Zeiger oder Referenz in jedes untergeordnete Objekt. Wenn das Kind dann dem übergeordneten Objekt etwas mitteilen muss, kann es dies immer tun, da es eine Mitgliedsvariable hat, die es verwenden kann.
Was sind andere Methoden, um dies zu tun? Gibt es ein allgemeines Designmuster oder einen Namen für diese Art von Dingen?
Beachten Sie, dass ich an Ideen und Lösungen in C ++ interessiert bin, da die Details in anderen objektorientierten Sprachen unterschiedlich sein werden. Zum Beispiel erwähnt Punkt 2 oben 'Zeiger oder Referenzen' und beide sind nur in C ++ möglich. C ++ verfügt über Sprachfunktionen, die in anderen Sprachen nicht vorhanden sind. Daher werden bei der Implementierung einer Lösung für das Problem möglicherweise diese Sprachfunktionen integriert, wodurch sich die Lösung von denen unterscheidet, die jemand in einer anderen Sprache findet.
delegate
ausreichen?