单例模式(SingletonPattern),属于创建型模式的一种,这种模式在内存中只会创建一次对象,让所有需要调用的地方都共用这一单例对象。这种模式设计到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。
单例模式的类型
- 懒汉式:在需要使用对象的时候采取创建单例类对象。
- 饿汉式:在类加载的时候就已经创建好了,等待被调用
懒汉式创建对象
懒汉式创建对象的方法式在程序使用对象前,先判断对象是否已经实例化(判断是否为空),若已经实例化就直接返回改类的对象,否则就先执行实例化操作。
具体实现如下:
public class Singleton{
private static Singleton singleton;
private Singleton(){} //构造方法私有化,防止外部实例化
public static Singleton getInstance(){
if(singleton == null){
singleton = new Singleton();
}
return singleton;
}
饿汉式创建单例对象
饿汉式在类加载的过程中,就已经创建好了对象,等待被调用,在调用的时候直接返回该单例对象。
具体实现如下:
public class Singleton{
private static final Singleton singleton = new Singleton();
private Singleton(){}
public static Singleton getIstance(){
return singleton;
}
}