Dependencia circular en C ++

Los hechos:

Tengo dos clases predominantes: Gerente y Especialista.Hay varios tipos diferentes de especialistas.Los especialistas a menudo requieren la ayuda de otros especialistas para hacer su trabajo.El Gerente conoce a todos los Especialistas, e inicialmente cada Especialista solo conoce a su Gerente. (Este es el problema.)En tiempo de ejecución, el administrador crea y almacena una lista de especialistas. Luego, el administrador recorre la lista y le pide a cada especialista que se inicialice. Durante su inicialización, cada Especialista le pide al Gerente que les proporcione otros Especialistas que cumplan con alguna descripción. Una vez que esto se completa, el Gerente entra en un ciclo durante el cual se les pide secuencialmente a los Especialistas que realicen su tarea especializada.

Para mí, parece que este es un patrón decente, pero como un Gerente tiene una lista de Especialistas y un Especialista tiene un Gerente, tengo problemas de dependencia circular.

¿Es este un caso en el que de alguna manera debería declarar la existencia de una clase de otra? (Si es así, ¿cómo?) ¿O debería usar algún patrón de diseño para solucionar este problema? (Si es así, ¿qué?) Además ... pensé que el patrón en sí era bastante bueno. así que no me importaría que alguien me ayudara a entender por qué esto es algo malo.

Respuestas a la pregunta(5)

Su respuesta a la pregunta