1、使用场景
解决一个类在内存中只存在一个对象。开发中如打印日志的工具类、自定义Application类实现对全局变量进行管理都会使用单例模式。
2、创建单利模式步骤
1)不让其他程序创建该类对象,私有化构造函数;
2)为让其他程序可以访问到该类对象,只好在本类中自定义一个对象。
3)对外提供方法,让其他程序获取这个对象。
3、单列模式的两种写法
1)饿汉式:类一进内存,就应经创建好对象。
<span style="font-size:14px;">class Single{
private Single(){}
private static Single single = new Single();
//静态工厂方法
public static Single getInstance(){
return single;
}
}</span>
2)懒汉式:对象是方法被调用时才初始化,也称类的延时加载。
class Single {
private Single() {}
private static Single single;
// 静态工厂方法
public static Single getInstance() {
if (single == null) {
synchronized (Single.class) {
if (single == null) {
single = new Single();
}
}
}
return single;
}
}