可能重复:
在 Java 中实现单例模式的有效方法是什么?
我是设计模式和学习阶段的新手。最近我了解了单例模式,并在我工作的地方查看了我们公司的代码。我发现下面的代码片段根据 Singleton 规则看起来不正确,即我们不应该同步一个方法,而是同步一个块。并且线程应该在进入块之前始终检查“ïinstance”变量的值是否为空。我的理解是正确的还是有一些逻辑以下列方式编码?
public class CustomLogger {
private static CustomLogger instance;
private CustomLogger(){
some code here....
}
public static synchronized CustomLogger getInstance(){
if (instance == null){
instance = new CustomLogger();
}
return instance;
}
}