【发布时间】:2011-05-26 07:37:50
【问题描述】:
我有一个依赖于另一个类的单例,因此我想注入此依赖项以使其可单元测试。由于无法在单例上使用构造函数注入,我想我应该改用 setter 注入,但我真的不喜欢它,因为在某些时候有人(可能是我自己)会忘记调用 setter。您当然可以将依赖对象注入到单例的 getInstance 方法中,但这也很丑陋。有没有更好的方法来解决这个问题(不使用 IoC 容器之类的工具)?
public class Singleton {
private ISomeDependency _dependency;
private static final Singleton INSTANCE = new Singleton();
private Singleton() {
}
public static Singleton getInstance() {
return INSTANCE;
}
...
}
【问题讨论】:
-
好问题。但我确实希望你能接受那些让你远离上述你想做的事情的答案。
标签: design-patterns language-agnostic dependency-injection singleton