C++ 这是坏习惯吗?

C++ 这是坏习惯吗?,c++,entity-framework,cyclic-reference,C++,Entity Framework,Cyclic Reference,假设我有三个类:EntityManager、Entity和Component 实体有一个组件数组(指针),每个组件都有一个字段,该字段是指向封装实体的指针 EntityManager有一个实体数组,每个实体都有一个指向其封装的EntityManager的指针 这种设计的原因是数据依赖性组件需要访问封装实体的字段,某些组件依赖于其他实体的字段(指向实体管理器的指针) 这种“周期性”设计是一种糟糕的做法吗?我应该重新考虑我的设计吗?任何循环都只会对资源共享/锁定资源,特别是对多线程来说是不好的 此外

假设我有三个类:EntityManagerEntityComponent

实体有一个组件数组(指针),每个组件都有一个字段,该字段是指向封装实体的指针

EntityManager有一个实体数组,每个实体都有一个指向其封装的EntityManager的指针

这种设计的原因是数据依赖性组件需要访问封装实体的字段,某些组件依赖于其他实体的字段(指向实体管理器的指针)


这种“周期性”设计是一种糟糕的做法吗?我应该重新考虑我的设计吗?

任何循环都只会对资源共享/锁定资源,特别是对多线程来说是不好的

此外,这看起来甚至不像是周期性的。它更像是一个并排设计,当然,要获得EntityManager字段,组件必须经过实体。或者,要获取组件,EntityManager必须遍历实体


在设计方面,我会担心如果需要更改实体或组件所依赖的EntityManager的字段会发生什么

这不一定是“坏习惯”或“坏设计”。关键是要确保指针的所有权/引用正确。我认为这没有问题。我建议您将添加/删除引用的逻辑放在同一位置。您不希望以一个管理者的实体结束,但管理者没有该实体。