Циклические ссылки — плохая практика?

Скажем, у меня есть три класса: EntityManager, сущность, а также Составная часть.

Объект имеет массив компонентов (указателей), и каждый из этих компонентов имеет поле, которое является указателем на инкапсулирующий объект.

EntityManager имеет массив объектов, и каждый объект имеет указатель на свою инкапсуляцию EntityManager.

Причиной такого дизайна является надежность данных. Компоненты необходим доступ к полям инкапсулирующего объекта, а некоторые компоненты зависят от полей другого объекта (указатель на менеджер объекта).

Является ли этот «циклический» дизайн плохой практикой? Должен ли я переосмыслить свой дизайн?

2

Решение

Все циклическое плохо только в отношении ресурсов совместного использования ресурсов / блокировки, особенно в отношении многопоточности.

Кроме того, это даже не выглядит циклично. Это скорее параллельный дизайн, то есть, конечно, чтобы получить поля EntityManager, компонент должен пройти через Entity. Или, чтобы получить Компонент, EntityManager должен пройти через Entity.

С точки зрения дизайна, я бы беспокоился о том, что произойдет, если вам нужно изменить поля EntityManager, от которых зависят Entity или Component?

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]