循环依赖和更好的方法吗?

时间:2016-10-18 23:21:55

标签: c++ class

我真的很喜欢编码,但是目前我开始的每个项目都因为循环依赖性而早早结束,这真的让我和我的头脑一团糟。我一直有问题,我正在尝试制作游戏,但是由于我的类结构,我依赖于一些循环依赖,最终导致问题,几乎总是增长并且不受我的控制。 我通常如何构建它:

  1. 课堂游戏
    1. 类GameContext
      1. 类窗口
        1. class GameContext
      2. 类EventManager
        1. class GameContext
      3. 类StateManager
        1. class GameContext
  2. 我使用它,因为我有时需要从EventManager访问例如Window。最后我似乎总是失去它。有没有更好的方法来避免循环依赖?如果不是,那么当你必须处理它们时,你是如何思考的?我以为我明白了,但显然不是。

    我想要存档的是一个中心存储“Context”类,其他类可以访问,但我不知道在这种情况下如何避免循环依赖。

    要真实地表达我的意思,你可以看看THIS,这是我最近失败的尝试。 我对这个当前结构的问题似乎与EventManager和GameStateManager之间的依赖关系有关,因为在EventManager中我得到一个未定义的GameStateID错误。

1 个答案:

答案 0 :(得分:0)

我设法弄清楚了我的问题,这更像是我对它的看法,我想我想要一个这样的结构:

  1. 课堂游戏
    1. 类GameContext
      1. 类窗口
        1. class GameContext
      2. 类EventManager
        1. class GameContext
  2. 但我真正想要的是:

    1. 课堂游戏
      1. class Window
      2. class EventManager
      3. class GameContext
    2. 除GameContext之外的每个类都包含指向GameContext的指针。 我的一个问题是我对前瞻性声明的理解,我不理解它们并混合并将它们传播到各处,因为我觉得它很神奇。