package com.SingletonDesign;
/**
* 单例模式恶汉式加载
*
* @author ZHANGHAOHAO089
* @date 2017/12/14
*/
public class SingletonDesign {
private static SingletonDesign singletonDesign = new SingletonDesign();
private SingletonDesign() {}
public static SingletonDesign getInstance() {
return singletonDesign;
}
}
package com.SingletonDesign;
/**
* 懒汉式双重判断 线程安全
*
* @author ZHANGHAOHAO089
* @date 2017/12/14
*/
public class SingletonDesign1 {
private static SingletonDesign1 singletonDesign;
private SingletonDesign1(){}
public static SingletonDesign1 getInstance() {
if (singletonDesign == null) {
synchronized (SingletonDesign1.class) {
if (singletonDesign == null) {
singletonDesign = new SingletonDesign1();
}
}
}
return singletonDesign;
}
}
package com.SingletonDesign;
/**
* 静态内部类方式
*
* @author ZHANGHAOHAO089
* @date 2017/12/14
*/
public class SingletonDesign2 {
private static class InnerClass {
private static final SingletonDesign2 singletonDesign = new SingletonDesign2();
}
private SingletonDesign2() {
}
public static SingletonDesign2 getInstance() {
return InnerClass.singletonDesign;
}
}