单例模式(Singleton)
官方定义
确保一个类只有一个实例,并提供一个全局访问点。
分类
创建型模式
思想
一个类的对象永远只会在当前进程中被创建一次,也就是说构造函数只可能被调用一次,不论有多少线程调用。为什么需要单例,假如这个类是用来操作某个资源的,如果存在多个这个类的实例,这可能在操作这个资源的时候造成破坏,所以只能创建一个实例是很有必要的。
UML类图
实现
一般来说,直接把对象声明为静态即可,程序集在加载过程中进行构造,这个也是线程安全的。但问题是如果此对象一直没有被调用,同时构造函数的开销较大,这个会造成资源浪费。
class Singleton |
著名的双检锁法,只在需要时执行构造函数,同时也是线程安全的
class Singleton |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 兜兜转转的博客!
评论