单例设计模式
作者:bin单例设计模式属于创建型模式
有如下特点:
只有一个实例。
自我实例化。
提供全局访问点。
俄汉模式:线程安全,调用效率高。但是不能延时加载
public class Singleton {
//类初始化时,立即加载这个对象
private static Singleton instance = new Singleton();
private Singleton() {
}
//方法没有加同步块,所以它效率高
public static Singleton getInstance() {
return instance;
}
}
懒汉模式:在对象需要使用时去实例化类,线程安全的,但是同步锁会影响效率
public class Singleton {
private static volatile Singleton instance = null;
private Singleton() {
}
//运行时加载对象
public static Singleton getInstance() {
if (instance == null) {
synchronized(Singleton.class){
if(instance == null){
instance = new Singleton();
}
}
}
return instance;
}
}