《Head First 设计模式》 Ch 05 单例模式
单例模式(Singleton Pattern)可能是最简单,也是被应用最为广泛的设计模式。单例模式保证一个类只会存在一个实例,并且提供了一个公共的接口来访问该实例。
#代码示例
1 | public class Singleton |
这里使用一个lockObj
是为了保证多线程安全,如果有多个线程在同一时间第一次调用Instance
,则可能存在两个线程都进入了instance == null
的分支,这就会造成两次实例化,所以我们需要通过加锁来保证线程安全。但如果我们将锁直接加在第一个If
外,则每次调用Instance
都有一个加锁的过程,所以这里选择在第一个 If 内加锁,锁内再次检查保证只会有一次实例化。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 三叔胡言乱语的地方!
评论