看了静态内部类实现单例模式,我觉得饿汉式单例模式不能叫做饿汉式,应该还是懒汉式。
理由如下:
静态内部类InnerClass在使用时,内部类InnerClass才初始化对象,所以叫懒汉式
但是,饿汉式的实现方式同样是在使用类HungrySingleton时,才初始化对象,为啥还叫饿汉式,不叫懒汉式呢?
代码如下:
静态内部类-基于类初始化的延迟加载解决方案
public class StaticInnerClassSingleton {
private StaticInnerClassSingleton(){
}
public static class InnerClass{
private static StaticInnerClassSingleton staticInnerClassSingleton=
new StaticInnerClassSingleton();
}
public static StaticInnerClassSingleton getInstance(){
return InnerClass.staticInnerClassSingleton;
}
}
饿汉式
public class HungrySingleton {
private static final HungrySingleton hungrySingleton=
new HungrySingleton();
public static HungrySingleton getInstance(){
return hungrySingleton;
}
}