Я хочу сделать два класса: object и object_manager, но я запутался в том, как они должны видеть / включать друг друга. Я слышал, что для двух заголовков запрещено включать друг друга, и если в моих зависимостях кода есть кружки, то это плохой дизайн кода, и обычно это должно быть похоже на иерархическую структуру (город-> дом-> мебель и мебель не должны знать о существовании города).
Но здесь у меня есть object_manager, который знает и хранит все объекты, и у объектов должна быть возможность создавать новые объекты, но затем они должны вызвать object_manager, который заставит их узнать о его существовании, и это создаст круг в структуре, что плохо ..
Это как будто один процесс хочет создать новый процесс, вызывая системные вызовы ОС, поэтому ОС и процесс знают друг о друге.
Есть ли способ, которым я могу реализовать это в правильном дизайне кода или иногда это должно быть плохо ??
Я подумал, что, возможно, у объектов должно быть специальное место, где они будут хранить все свои "системные вызовы", и object_manager будет время от времени проверять его ... но, возможно, есть лучший способ.