设计形式-单例模式解析
设计模式-单例模式解析什么叫单例模型, 直接上代码:一,同步方法publicclassSingleton{staticclassSingleto
设计模式-单例模式解析
什么叫单例模型, 直接上代码:
一,同步方法
public class Singleton { static class SingletonHolder { static Singleton instance = new Singleton(); } public static Singleton getInstance() { return SingletonHolder.instance; } }
虽然你看完了上面的3中形式, 也许你已经都忘了! 所以你在回头看一种就好了认真理解第一种就行了。
单例其实的原理就是 使用对象不是直接通过new来实例化, 而是使用静态方法getInstance来获得一個对象的引用,如果该对象不是空,就返回对象引用,如果为空就创建一個对象返回。
当是为什么要使用单例模型呢? 特别是在web方面, 尤其重要。因为需要管理的配置太多了,用户也多。
其实我们在使用对象的时候都是new一下,在去操作这个对象。但是如果这个对象 ,是比较全局的,这个很重要,不能乱用单例,但是比较全局的,我们就可以考虑使用单例, 这样不仅不用new多个, 而且还起到了协调系统整体的行为 ;
取个例子: 配置管理上,在服务器程序中, 服务器的配置信息存放在一個文件中,然后用这个单例去统一的读取信息, 之后其他的服务对象在通过这个对象去读取配置信息,并且操作。
这样就简化了配置管理的复杂程度。
注意: 多线程中的单例。
在多线程中使用单例要格外小心, 两个线程没有检查到唯一实例的存在,有可能同时创立, 解决的办法就是 给已经实例出单例的变量加上互斥锁。
[size=x-small;]Ext JS中也使用了不少的单例模式,JS使用单例,可以对客户浏览器中的内存得到充分的利用。[/size]
[size=x-small;] 以上只为个人理解,如有不恰当处,还望大家批评指正。[/size]