1:为什么要用单例模式?
单例模式的主要作用是保证在Java应用程序中,一个类Class只有一个实例存在,例如常见的数据库连接
2:单例模式的三个特点:
①:一个类只能有一个实例
②:该类自己创建这个实例
③:整个系统都要使用这个实例
3:饿汉单例实现
饿汉单例类在自身被加载时对象会被实例化,即便加载器是静态的,如下:
package com.andrew.designpattern.singleton;
public class HungerSingleton {
//私有静态的自身实例,饥汉模式就是一上来就new出一个对象(馒头),饿得不行了都
private static HungerSingleton instance = new HungerSingleton();
//私有的构造方法
private HungerSingleton(){
}
//公开静态的公有工厂方法
public static HungerSingleton getInstance(){
return instance;
}
}
4:饱汉单例实现
饱汉单例是将实例化(new)推迟到使用对象的时候,适用于对于资源密集,配置开销较大的单体更合理
package com.andrew.designpattern.singleton;
public class LazySingleton {
//私有静态的自身实例
private static LazySingleton instance = null;
//私有的构造方法
private LazySingleton(){
}
//公开静态的公有工厂方法,懒汉模式是在用的时候才去new,可够懒的了(临时抱佛脚)
public static LazySingleton getInstance(){
if(instance == null){
instance = new LazySingleton();
}
return instance;
}
}