我基本上是在为 HelperWrapper 的用户寻找一种缓存机制。这是双重检查单例的正确使用吗?
final class HelperWrapper {
private static volatile Helper helper = null;
public static Helper getHelper() {
if (helper == null) {
synchronized (HelperWrapper.class) {
if (helper == null) {
helper = new Helper();
}
}
}
return helper;
}
}
我知道这不会阻止某人实例化他们自己的 Helper 对象,但这不是目标。
附加信息:
- 我无法修改 Helper 类以使构造函数私有。我也不想。
- 要求规定不应急切地实例化助手