一、定义
单例模式,一个类保证全局唯一性,只能创建该类型一个对象,并提供一个全局访问点。
缺点:
1)没有接口,扩展困难,违反开闭原则;
2)如果扩展单例对象,需要修改代码。
二、类图
三、四种实现
1.饿汉式
1)直接new出来
public class HungrySingleton {
//直接new出来,全局唯一性
private static HungrySingleton instance = new HungrySingleton();
//防止被new出来,但可以通过反射创建
private HungrySingleton(){}
//全局唯一访问入口
public static HungrySingleton getInstance(){
return instance;
}
}
2)通过static块,在类加载的时候初始化实例
public class HungryStaticSingleton {
private static final HungryStaticSingleton instance;
//通过static块,在类加载的时候初始化实例
static {
instance = new HungryStaticSingleton();
}
private HungryStaticSingleton(){}
public static HungryStaticSingleton getInstance(){
return instance;
}
}
2.懒汉式
1)线程不安全
public class LazySimpleSingleton {
private static