使用单例模式有一个必要条件:在一个系统要求一个类只有一个实例时才应当使用单例模式。单例模式又分为饿汉式和懒汉式。
1.饿汉式
public class Singleton {
private static Singleton _instance = new Singleton();
//私有的默认构造器
pirvate Singleton() { };
//静态工厂方法
public static Singleton getInstance() {
return _instance;
}
}
单例类的一个最重要的特点是类的构造器是私有的,从而避免外界利用构造器直接创建出任意多的实例。
2.懒汉式
public class Singleton {
private static Singleton _instance = null;
//私有的默认构造器
pirvate Singleton() { };
//静态工厂方法
public static Singleton getInstance() {
if(_instance == null)
{
_instance = new Singleton();
}
return _instance;
}
}
与饿汉式相同之处是构造器是私有的。不同之处是,懒汉式在第一次被引用时才将自己实例化。