Скажем, у меня есть три класса: EntityManager, Предприятие и Компонент.Является ли циклическая ссылка плохой практикой?
У объекта есть массив компонентов (указателей), и каждый из этих компонентов имеет поле, которое является указателем на инкапсулирующую сущность.
EntityManager имеет множество сущностей, и каждый объект имеет указатель на его обволакивающие EntityManager.
Причиной такого дизайна является надежность данных. Компоненты нуждаются в доступе к полям инкапсулирующего объекта, а некоторые компоненты зависят от полей другого объекта (указатель на диспетчер сущностей).
Является ли этот «циклический» дизайн плохой практикой? Должен ли я переосмыслить свой дизайн?
Это не обязательно «плохая практика» или «плохой дизайн». Дело в том, чтобы получить правильные указатели/ссылки. –
Я не вижу проблемы с этим. Я бы предложил вам добавить логику, которая добавляет/удаляет ссылку в одном месте. Вы не хотите, чтобы в конечном итоге был сущностью, которая была менеджером, но у менеджера не было объекта. –