单列模式
what's this?
饿汉式/懒汉式
实现:
public class Singleton {
private Singleton(){}
private static Singleton singleton;
public static Singleton getSingleton(){
if(singleton == null){
synchronized (Singleton.class){
if(singleton == null){
singleton = new Singleton();
}
}
}
return singleton;
}
}
场景:
一段跟业务相关的代码在不同的模块中被重复地使用到,可以将这段代码抽取出来,封装在一个类里面,以供各个模块调用。
那么问题来了。是不是要在各个模块中都生成该类的实例呢?如果是,这种都创建一个实例的做法会浪费资源,显然是不合理的。
如果是用静态方法呢?该类可能依赖其他的实例对象。
单例,是需要在多处模块中通过对象来调用其中的方法,又不想重新创建对象的情况下使用。
浙公网安备 33010602011771号