Циклическая зависимость в C ++

Факты:

  • У меня два преобладающих класса: Менеджер и Специалист.
  • Есть несколько различных типов Специалистов.
  • Специалисты часто нуждаются в помощи других Специалистов, чтобы выполнить свою работу.
  • Менеджер знает всех Специалистов, и изначально каждый Специалист знает только своего Менеджера. (Это проблема.)
  • Во время выполнения менеджер создает и сохраняет список специалистов. Затем менеджер просматривает список и просит каждого специалиста выполнить инициализацию. Во время инициализации каждый Специалист просит Менеджера предоставить им других Специалистов, которые соответствуют определенному описанию. Как только это будет завершено, Затем Менеджер переходит в цикл, в течение которого Специалистов последовательно просят выполнить их специализированную задачу.

Мне кажется, что это достойный шаблон, но поскольку у Менеджера есть список Специалистов, а у Специалиста есть Менеджер, я У меня проблемы с циклической зависимостью.

Это тот случай, когда я должен каким-то образом пересылать объявление о существовании одного класса из другого? (Если да, то как?) Или мне следует использовать какой-нибудь шаблон проектирования, чтобы решить эту проблему? (Если да, то что?) Кроме того ... Я думал, что сама схема была в порядке, поэтому я не возражал бы, чтобы кто-нибудь помог мне понять, почему это плохо.

18
задан JnBrymn 25 October 2010 в 21:00
поделиться