设计模式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或之前的版本,你必须建立单件注册表,以避免垃圾收集器将单件回收。

浙公网安备 33010602011771号