再论单例模式
工作也有一年多的时间了,这一年有喜也有忧,不过不管怎么说换了工作换了环境就得好好干,新的开始新的天地!呵呵。。。
旧的一年里技术上没有什么大的长进,就设计模式来说吧,工作中用到过但是始终不知道不理解 到底是怎么回事,管理以及团队配合上是学习不少,这都要感谢我去年的头(说实在的真的很佩服他!)
现在有了些时间好好地回顾了一下,在此就把自己的理解以作为备忘,同时也希望能帮助其他的人。好了不多说了,直接说单例吧!
public class Singleton{ private volatile static Singleton uniqueInstance; private Singleton(){} public static Singleton getInstance(){ if(uniqueInstance == null){ synchronized(Singleton.class){ if(uniqueInstance == null){ uniqueInstance = new Singleton(); } } } } }第三种方案只有在第一次创建的时候才会同步,这样的话我们的性能相比较之前的会有很大的提升。
虽然给出了这三种方案,但是我还是有疑惑的地方比如在 第一种和第二种解决方案上面 我有些问题
可以看到 如果我们担心性能问题 那么就不能使用同步了,那么是不是同步问题和性能兼容上面我们只能选择第三种解决方案呢?希望哪位前辈 能再详细的解释一下啊!