Al modelar un objeto con hijos, es común incluir a los hijos a través de la composición, como miembro de la clase padre. A veces, sin embargo, los niños necesitan decirle algo al padre, necesitan llamar a una función del padre. ¿Cómo se puede lograr esto usando C ++? Algunas opciones son:
Haga que la clase primaria sea global, por lo tanto, los objetos secundarios podrán llamar a las funciones miembro del objeto primario.
Inyecte el objeto primario como un puntero o referencia en cada objeto secundario. Luego, cuando el niño necesita decirle algo al objeto padre, siempre puede hacerlo porque tiene una variable miembro que puede usar.
¿Cuáles son otros métodos para hacer esto? ¿Existe un patrón o nombre de diseño general para este tipo de cosas?
Tenga en cuenta que estoy interesado en ideas y soluciones en C ++ porque los detalles serán diferentes en otros lenguajes orientados a objetos. Por ejemplo, el punto 2 anterior menciona 'punteros o referencias' y ambos solo son posibles en C ++. C ++ tiene características de lenguaje que no están presentes en otros idiomas, por lo tanto, las implementaciones de una solución al problema incorporarán potencialmente estas características de lenguaje, lo que hace que la solución sea diferente de lo que alguien podría encontrar en otro idioma.
delegate
suficiente un simple ?