架构师训练营第三周作业
单例设计模式
作业一:
1. 请在草稿纸上手写一个单例模式的实现代码,拍照提交作业。
在外出差,没有纸和笔,在网页上手写了下。
复制代码
版权声明: 本文为 InfoQ 作者【lakers】的原创文章。
原文链接:【http://xie.infoq.cn/article/43b2a5de1a297b75ea549105f】。未经作者许可,禁止转载。
单例设计模式
1. 请在草稿纸上手写一个单例模式的实现代码,拍照提交作业。
在外出差,没有纸和笔,在网页上手写了下。
// DCL双检查锁机制(DCL:double checked locking)
public class Singleton {
// 将自身实例化对象设置为一个属性,并用static修饰
private static Singleton instance;
// 构造方法私有化
private Singleton() {}
// 静态方法返回该实例
public static Singleton getInstance() {
// 第一次检查instance是否被实例化出来,如果没有进入if块
if(instance == null) {
synchronized (Singleton.class) {
// 某个线程取得了类锁,实例化对象前第二次检查instance是否已经被实例化出来,如果没有,才最终实例出对象
if (instance == null) {
instance = new Singleton();
}
}
}
return instance;
}
}
版权声明: 本文为 InfoQ 作者【lakers】的原创文章。
原文链接:【http://xie.infoq.cn/article/43b2a5de1a297b75ea549105f】。未经作者许可,禁止转载。
还未添加个人签名 2018.04.25 加入
还未添加个人简介
促进软件开发及相关领域知识与创新的传播
评论