----------------------ASP.Net+Android+IOS开发、.Net培训、期待与您交流! --------------------
以前一直不太理解单例模式,经这段时间的学习,和上网看大牛们的博客,让我对单例设计模式有了理解:
Singleton模式主要作用是保证在Java应用程序中,一个类Class只有一个实例存在。
使用Singleton的好处还在于可以节省内存,因为它限制了实例的个数,有利于Java垃圾回收(garbage collection)。
如何使用?
一般Singleton模式通常有几种形式:
public> //这里提供了一个供外部访问本class的静态方法,可以直接访问
|
第二种形式:
public class Singleton { private> }
|
使用Singleton.getInstance()可以访问单态类。
上面第二中形式是lazy initialization,也就是说第一次调用时初始Singleton,以后就不用再生成了。
注意到lazy initialization形式中的synchronized,这个synchronized很重要,如果没有synchronized,那么使用getInstance()是有可能得到多个Singleton实例。关于lazy initialization的Singleton有很多涉及double-checked locking (DCL)的讨论,有兴趣者进一步研究。
一般认为第一种形式要更加安全些。
大牛人的博客大牛人解读单例模式
----------------------ASP.Net+Android+IOS开发、.Net培训、期待与您交流! --------------------