1 |
|
正常懒汉单例
1 |
|
懒汉+双重校验单例
1 |
|
变种懒汉单例
1 |
|
懒汉式单例一般都会再加个双重校验的判断,避免每次调用get()都加锁,影响性能,Android源码中Singleton.java工具类并没有做双重校验(看了下googlesource中的Singleton.java,也是6年前提交的代码了),所以我们在将Singleton.java拷贝出来使用的时候可以加个双重校验优化下。Singleton.java封装了create,get模版,及get中的校验逻辑,从而SingletonDemo中的实现代码就可以更加的简单:1.create()一个单例对象,2.在需要的时候get()。