单例模式
一.什么是单例模式
保证某个类在程序中只存在一份实例,而不会创建多个实例,这样就会提高效率。
在单利模式中一般只提供一个getInstance()方法来获取实例对象,不提供setInstance()方法,目的是为了避免再实例化出其他实例对象。
其中单例模式中有两种模式一种是饿汉模式,一种是懒汉模式。
一.饿汉模式
1.饿汉模式的概念
饿汉模式就是在类加载的时候立刻会实例化,后续使用就只会出现一份实例。
2.饿汉模式代码
package thread.example;
//饿汉模式
public class HungrySingle {
//在类加载的时候就实例化了,类加载只有一次,所以值实例化出了一份该实例对象
private static HungrySingle instance = new HungrySingle();
public static HungrySingle getInstance() {
return instance;
}
}
二.懒汉模式
1.懒汉模式的概念
在类加载的时候没有直接实例化,而是调用指定实例方法的时候再进行实例化,这样就能保证不想使用的时候也不会实例化。一般来说比饿汉模式的效率高。
package thread.example;
//单线程的懒汉模式
public class LazySingle {
private static LazySingle instance = null;
//只有在调用该方法的时候才实例化
public static LazySingle getInstance() {
if(instance == null) {
instance = new LazySingle();
}
return instance;
}
}
浙公网安备 33010602011771号