谈谈singelton单例模式

来源:互联网 发布:sql declare 全局变量 编辑:程序博客网 时间:2024/04/27 05:53
单例模式是一种常用设计模式。该类只有一个实例,而且该类自行创建实例。

        很多时候,服务器都只需要一个全局对象,这样方便协调系统的整体行为。比如系统的配置文件,系统只需要一个单例对象读取加载,其他对象只需要通过该单例对象获取配置信息。这样方便在复杂模式下对系统配置的管理。

         java中常用单例模式:

[java] view plaincopyprint?
  1. public class Singleton(){  
  2.       
  3.     private final static Singleton INSTANCE=new Singleton();  
  4.       
  5.     private Singleton(){}  
  6.       
  7.     //公开的,静态工厂方法  
  8.     public static Singleton getSingleton(){  
  9.         return INSTANCE;  
  10.     }  
  11. }  

这种方法,在类自身被加载是INSTANCE就已经实例化了,会提前占用资源。

          另一种常用模式:

[java] view plaincopyprint?
  1. public class Singleton(){  
  2.       
  3.     private final static Singleton INSTANCE=null;  
  4.       
  5.     private Singleton(){}  
  6.       
  7.     //公开的,静态工厂方法  
  8.     public static Singleton getSingleton(){  
  9.         if(null==INSTANCE){  
  10.             synchronized(Singleton.class){  
  11.                 INSTANCE=new Singleton();  
  12.             }  
  13.         }  
  14.         return INSTANCE;  
  15.     }  
  16. }  

这里需要加上线程锁,来避免生成多个实例。

 

singleton还有其他实现形式,在这里就不一一例举了。


0 0
原创粉丝点击