【发布时间】:2011-08-22 08:58:42
【问题描述】:
我一直都知道单例是“坏的”,但直到我从 C++ 迁移到 Java 之后,我才决定找到解决它们的方法。通过阅读,我发现工厂或依赖注入都可以完成这项工作,但我想对此进行一些确认。
举个例子,我准备写一个 AnimationCache 单例来存储Map<String, Animation>。不同的类应该能够(基本上)在任何地方访问这个类,以便它们可以轻松有效地加载动画。一个非常简短的例子来说明使用 DI 的等效代码会是什么样子。
另外,Guice 是一个用于非 Web 应用程序的 DI 的好框架吗?我使用 Spring 进行 Web 开发,但我不太确定它是否适用于游戏。
【问题讨论】:
-
Spring DI 不仅适用于 Web 应用程序。
-
更新:您可能还想考虑CDI 2.0 – Contexts & Dependency Injection for Java。截至 2017 年 4 月,在 JSR 365 中标准化。专为 Java SE 和 Java EE 设计。
-
这个问题及其答案可能与未来的读者有关:stackoverflow.com/questions/130794/…
标签: java dependency-injection singleton guice