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