我已经听过无数次有关Singletons /全局变量的陷阱的信息,而且我理解为什么它们如此频繁地皱眉。
我不明白什么是优雅的,非混乱的选择。似乎使用Singletons / globals的替代方法总是涉及通过引擎对象向下传递一百万个级别的对象,直到它们到达需要它们的对象为止。
例如,在我的游戏中,我会在游戏启动时预加载一些资产。直到玩家在主菜单中导航并进入游戏时,这些资产才被使用。我是否应该将这些数据从Game对象传递到ScreenManager对象(尽管实际上只有一个Screen关心该数据),然后再传递给适当的Screen对象以及其他任何地方?
似乎我正在交换全局状态数据以进行混乱的依赖注入,将数据传递给什至不关心数据的对象,除非是将其传递给子对象。
这是Singleton会是一件好事的情况,还是我缺少一些优雅的解决方案?