如何有效地从 object 访问 parent object 的 parent?

How to access parent object's parent from an object efficiently?

抱歉标题定义错误。我的意思是:

(顺便说一句,我正在开发游戏引擎,A 是 场景 ,B 是 游戏 Objects和 C 是 组件)

我有3个类:A、B、C

(A 在 B 的 header 中前向声明,并包含在 B 的实现中)

是这样的:A <-> B <-> C

我的情况是这样的:

我的问题是我应该使用哪一个以及为什么(或者有更好的?):

第一个对我来说看起来更好,但在 C 的实现中我只包含 B 的 header,其中 A 仅向前声明 。所以我不能使用 A 的方法 除非在 C 中明确包含它。(这是一种不好的做法,还是我应该只包含它?)

第二个开销很大。如果我想使用 A 的 XY 方法,我必须在 B 中创建一个调用 A 的 XY 的 XY 方法,并且我必须在 C 中创建一个调用 B 的 XY 的 XY 方法。

所以我不知道我应该如何从较低的元素到达层次结构中的较高元素。

最好的解决方案是什么?

In C: GetB().GetA().DoSomething()

C's DoSomething() calls B's DoSomething() which calls A's DoSomething.

我认为两者都是错误的,因为从架构的角度来看,这种方法在 类 之间创建了强耦合。考虑使用事件调度程序,它为您的逻辑实现 Observer 模式。让组件相互发送事件并对其作出反应。

我不确定这在您的情况下如何在性能方面发挥作用,但我强烈建议您不要 premature optimization,除非它很明显。