更好的单例(Singleton)实现方式

今天从网上看到一个蛮好的Singleton模式的实现方式
下面是经典的实现方式,使用Lazy load方式。
public class Singleton {

 
static Singleton instance;

  
public static synchronized Singleton getInstance() {
    
if (instance == null)
      instance 
== new Singleton();
    
return instance;
  }


}


synchronized关键字加在getInstance上,也就是说每次调用getInstance都会收到synchronized的影响。
下面是Bob Lee想出来的一种新办法。
public class Singleton ...{

  
static class SingletonHolder {
    
static Singleton instance = new Singleton();
  }


  
public static Singleton getInstance() {
    
return SingletonHolder.instance;
  }


}


这种方式更优雅,并且减少了synchronized的影响。
 
发布了63 篇原创文章 · 获赞 24 · 访问量 23万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章