JAVA_单例模式

枚举

public enum  Demo03 {

AAAA; //初始化
private A instance;
Demo03(){
instance = new A();
}
public A getInstance(){
return instance;
}

}
class A{

}
class Test{
public static void main(String[] args) {
// Demo03 demo03 = new Demo03();
Demo03 aaaa = Demo03.AAAA;
A instance = aaaa.getInstance();


// A c = Demo03.BBB.getInstance();
// A a = Demo03.INSTANCE.getInstance();
System.out.println(instance);
// System.out.println(c);

}
}
2.懒汉
//懒汉式
public class Demo02 {
private volatile static Demo02 demo02;
private boolean flag = true;
private Demo02(){
if (flag){
flag = false;
}
else{
throw new RuntimeException("拒绝使用反射获取对象");

}
}
//双重检测锁模式
public static Demo02 getInstance(){
if (demo02 == null){
synchronized (Demo02.class) {
if (demo02 == null) {
demo02 = new Demo02();
}
}
}
return demo02;
}




}


posted @ 2020-11-12 22:57  Wede  阅读(82)  评论(0)    收藏  举报