模式一:
class Singleton2 {
private Singleton2(){
}
private static Singleton2 instance;
public static Singleton2 getInstance() {
if(instance==null){
instance=new Singleton2();
}
return instance;
}
}
不用说,大家也知道,这种在单线程程序中是没什么问题的,但多线程程序中,则可能会创建出2个或多个对象.
模式二:
public class Singleton {
private Singleton(){
}
private static Singleton instance =new Singleton();
public static Singleton getInstance(){
return instance;
}
}
这种很显然没有前者的问题,也是值得推崇的方式.
模式三:
public class Singleton {
private static class SingletonHolder {
static Singleton instance = new Singleton();
}
public static Singleton getInstance() {
return SingletonHolder.instance;
}
}
这又是一种单例实现方式,但不太明白和模式二对比,那个更好一点???显然模式三多创建了一个对象.??疑问中