设计模式5——单件模式

定义:单件模式确保一个类只有一个实例,并提供一个全局访问点。

 


类图:

单件模式

 


示例源码:

pubic class singleton()

   1:  public class Singleton(
   2:        private volatile* static Singleton uniqueInstance;
   3:        private Singleton(){}
   4:        public static Singleton getInstance(){
   5:               if(uniqueInstance == null)[
   6:                     synchronized (Singleton.class){
   7:                            if(uniqueInstance == null){
   8:                                 uniqueInstance = new Singleton();   
   9:                            }
  10:                      }
  11:                }
  12:        }
  13:  }

 


要点:

1、单间模式确保程序中一个类最多只有一个实例;

2、单件模式也提供访问这个实力的全局点;

3、在java中实现单件模式需要私有的构造器、一个静态方法和一个静态变量;

4、确定在性能和资源上的限制,然后小心地选择适当的方案来实现单件以解决多线程的问题(我们必须认定所有的程序都是多线程的)。

5、如果不是采用第五版的java2,双重检查加锁实现会失效;

6、小心,你如果使用了多个类加载器,可能导致单件失效而残生多个实例;

7、如果使用jvm1.2或之前的版本,你必须建立单件注册表,以避免垃圾收集器将单件回收。

 

 

 

posted on 2010-12-22 22:02  铜铁的两三事  阅读(483)  评论(0)    收藏  举报