什么是单例设计模式?
单例设计模式简单的说就是只存在一个对象实例,即:类只实例化一次。
为什么要使用单例模式?
对于一些类很复杂,我们实例化一次会消耗很多的时间和资源,所以我们只实例化一次,以后都使用这个对象。
如何实现单例模式?
1.饿汉式
代码举例:
public class Single {
private Single() {
}
private static Single single=new Single();
public static Single getInstance() {
return single;
}
}
分析:
我们通过私有化构造函数,使得使用者无法构造对象,然后我们用实例化一个静态的私有化成员,再通过共有函数进行调用,注意这个时候我们的对象是在类中就实例化好的。
2.懒汉式
代码举例:
public class Single1 {
private Single1() {}
private static Single1 s=null;
public static Single1 getInstance()
{
if(s==null)
{
s=new Single1();
}
return s;
}
}
分析:
我们先建立一个空对象,然后在第一次调用函数时再实例化对象。
两种方法的区别:
区别在于实例化对象的时间,饿汉式是在类中就实例化了,而懒汉式是在第一次调用函数。