单例模式分类:懒汉模式,饿汉模式,DCL模式,内部类模式,枚举。其中,传统懒汉,饿汉都不可靠,DCL模式非常可靠,但是因为jvm的原因,还是不完美,内部类模式特别的优雅,推荐使用,枚举相当简洁,也推荐使用。
具体代码实现:DCL模式:
public class DCLSingle {
private static DCLSingle instance;
private DCLSingle() {
}
public DCLSingle getInstance(){
if(instance==null){
synchronized (DCLSingle.class){
if(instance==null){
instance=new DCLSingle();
}
}
}
return instance;
}
}
内部类模式:
public class InnnerClassSingle {
private InnnerClassSingle() {
}
private static InnnerClassSingle getInstance(){
return InnerHolder.Instance;
}
private static class InnerHolder {
private static final InnnerClassSingle Instance=new InnnerClassSingle();
}
}