如果想使用枚举来实现单例模式的话,只能是饿汉式,如果你能提供饱汗式,请指教。
传统方式:
public class Sington {
private final static Sington s=new Sington();
private Sington(){
}
public static Sington getInstance(){
return s;
}
}
枚举方式:
public enum SingtonEnum1 {
SingtonEnum1;
private SingtonEnum1(){
}
public static SingtonEnum1 getInstance(){
return SingtonEnum1;
};
}
测试一下:
public class SingtonTest {
public static void main(String[] args) {
/*
* 传统的单例饿汉模式
*/
Sington s1=Sington.getInstance();
Sington s2=Sington.getInstance();
System.out.println(s1==s2);
System.out.println("----------华丽的分割线----------");
/*
* 枚举实现单例饿汉模式
*/
SingtonEnum1 se1=SingtonEnum1.getInstance();
SingtonEnum1 se2=SingtonEnum1.getInstance();
System.out.println(se1==se2);
}
} |