单例模式的构造方法访问权限

来源:1-1 课前必读(不看会错过一个亿)

LittleGoblin

2022-12-13

单例模式的设计是为了保证类有且只有一个,但是我发现即使构造函数不是private,也可以保证类有且只有一个。就是说,单例模式的条件只需要提供一个静态的方法就可以了,因为static修饰的属性只会被初始化一次。至于构造方法私有不私有根本就没关系吧?图片描述
这段程度运行后的结果:
model.User@28d93b30
model.User@28d93b30

写回答

1回答

geelylucky

2023-03-24

同学你好,上述代码如果多线程去调用getInstance()方法,可能存在线程安全问题,即有可能创建出多个对象,但是最后一次赋值的对象会给到user,这就违背了单例的原则。我们应该保证即使在多线程的情况下也要保证只能创建出一个对象;

0
0

Java设计模式精讲-Debug方式+内存分析

系统学习设计原则,设计模式,锤炼编码内功,赢取高薪Offer

3430 学习 · 407 问题

查看课程