单件模式要点:
1.单件模式确保程序中一个类最多只有一个实例
2.单件模式也提供访问这个实力的全局点
3.在java中实现单件模式需要私有的构造器、一个静态方法和一个静态变量
4.确定在性能和资源上的限制,然后小心地选择适当的方案来实现单件,一解决多线程的问题(我们必须认定所有的程序都是多线程的)
5.如果不是采用第五版的java 2 ,双重检查加锁实现会失效
6.小心,你如果使用多个加载器,可能导致单件失效而产生多个实例
7.如果使用JVM 1.2 或之前的版本,你必须建立单件注册表,一面垃圾收集器将单件回收
单件模式:确保一个类只有一个实例,并提供一个全局访问点
public class Singleton{
private static Singleton uniqueInstance;//一个静态变量
private Singleton(){}//私有构造器
public static Singleton getInstance(){//一个静态方法
if(uniqueInstance == null){
uniqueInstance = new Singleton();
}
return uniqueInstance;
}
}
单件模式在多线程中利用上述代码,存在创建不止一个实例,解决方案有3种: