一个问题通常有
n
种解法,其中肯定有一种解法是最优的,这个最优的解法被人总结出来了,称之为
设计模式
。
解决什么问题?怎么写?
单例设计模式:确保一个类只有一个对象。
写法
把类的构造器私有。
定义一个类变量记住类的一个对象。
定义一个类方法,返回该对象。
饿汉式单例:在获取类的对象时,对象已经创建好了。
//饿汉式:拿对象时,对象已经创建好了
public class AA {
//2.定义类变量,记住类的一个对象 10s
static AA aa = new AA();
//1.私有类的构造器
private AA(){
}
//3.定义类方法,返回该对象
public static AA getInstance(){
return aa;
}
}
懒汉式单例:用到类的对象时,才开始创建对象。
//懒汉式:拿对象时,对象才开始创建
public class BB {
//2.定义类变量,记住类的一个对象 10s
static BB bb;//null
//1.私有类的构造器
private BB(){
}
//3.定义类方法,返回该对象
public static BB getInstance(){
//判断当前类变量是否为null,如果为null再开始创建对象,将对象地址值赋值给bb
if (bb == null){
bb = new BB();
}
return bb;
}
}
在有些业务场景下,使用单例模式,只创建一个对象,
避免浪费内存
。
频繁使用时用
饿汉式单例,不频繁使用时用懒汉式单例