Quando si modella un oggetto con i bambini è comune includere i bambini tramite la composizione, come membro della classe genitore. A volte però i bambini hanno bisogno di dire qualcosa ai genitori, hanno bisogno di chiamare una funzione del genitore. Come può essere realizzato usando C ++? Alcune opzioni sono:
-
Rendi globale la classe genitore, quindi gli oggetti figli saranno in grado di chiamare le funzioni membro dell'oggetto padre.
-
Inietti l'oggetto genitore come un puntatore o riferimento in ogni oggetto figlio. Quindi, quando il bambino ha bisogno di dire qualcosa all'oggetto genitore, può sempre farlo perché ha una variabile membro che può usare.
Quali sono gli altri metodi per farlo? C'è un modello di progettazione generale o un nome per questo genere di cose?
Nota che sono interessato a idee e soluzioni in C ++ perché i dettagli saranno diversi in altri linguaggi orientati agli oggetti. Ad esempio, il punto 2 sopra menziona "puntatori o riferimenti" ed entrambi sono possibili solo in C ++. C ++ ha caratteristiche linguistiche che non sono presenti in altri linguaggi, quindi implementazioni di una soluzione al problema potrebbero incorporare queste caratteristiche linguistiche che rendono la soluzione diversa da quella che qualcuno potrebbe trovare in un'altra lingua.