老师,关于饿汉式的问题
来源:8-5 单例设计模式-饿汉式
相信光变成光
2024-04-24
看了静态内部类实现单例模式,我觉得饿汉式单例模式不能叫做饿汉式,应该还是懒汉式。
理由如下:
静态内部类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;
}
}
写回答
1回答
-
geelylucky
2024-05-10
同学你好,饿汉的意思是单例对象创建好后,不会立即使用(可能,不绝对),需要等待后续需要的时候才被使用,一直被饿着;懒汉的意思是不用的时候就不创建,一旦要创建这个对象,那么一定是要用的时候;
在使用HungrySingleton类时创建单例对象,有可能是调用HungrySingleton类的其他方法,单例对象被创建出来只是在触发静态对象的一个副作用;
00
相似问题