单例模式(singleton)顾名思义,就是只有一个实例。
作为对象的创建模式,单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。这个类称为单例类。
显然单例模式的要点有三个:一是某个类只能有一个实例;二是它必须自行创建这个实例;三是它必须自行向整个系统提供这个实例。
一些资源管理器常常设计成单例模式。
JAVA中的单例模式:
Singleton模式主要作用是保证在Java应用程序中,一个类Class只有一个实例存在。
一般Singleton模式通常有两种形式:
- 第一种形式:也是常用的形式,有人称为懒汉模式。
public class Singleton {
private static Singleton instance = null;//私有静态对象
private Singleton() {//私有构造方法,外部不可创建对象
}
public static Singleton getInstance() {//仅此有一个公开的静态方法,得到一个实例
if(instance==null){//如果实例不存在,则创建一个实例
instance = new Singleton();
}
return instance;//如果已经存在,则直接返回实例
}
}
- 第二种形式:有人称为饿汉模式。
public class Singleton {
private static Singleton instance = new Singleton();//私有的实例成员,在类加载的时候就创建好了单例对象
private Singleton() {//私有构造方法,避免外部创建实例
}
public static Singleton getInstance(){//仅此有一个公开的静态方法,得到一个实例
return instance;//返回实例
}
}