饿汉式与懒汉式
单例模式,即对某类只进行一次实例化,不允许再出现其他的实例化对象。实现的方法是通过将类的构造函数限制为private,禁止其他类对其进行调用,并且类本身对构造函数只进行一次调用。
具体实现常用的方法有两种,饿汉式和懒汉式:
1.饿汉式:程序开始立即进行实例化
public class Singleton {
//私有化构造方法
private Singleton(){
}
private static Singleton instance = new Singleton();
public static Singleton getInstance(){
return instance;
}
}
2.懒汉式:在需要用到此类的时候才进行实例化
public class Singleton {
//私有化构造方法
private Singleton(){
}
//准备一个类属性,暂时指向null
private static Singleton instance=null;
public static Singleton getInstance(){
//第一次访问的时候,发现instance没有指向任何对象,这时实例化一个对象
if(null==instance){
instance = new Singleton();
}
return instance;
}
}
单例模式的三要素
- 构造方法私有化
- 静态属性指向实例,且只实例化一次
- public static修饰的getInstance()函数,返回值为第二步中的静态属性