`

设计模式快速参考-单例模式

阅读更多
class Singleton{

   private Singleton(){
   }

   private static Singleton singleton = null;

   public static Singleton getInstance(){
      if(null == singleton){
         singleton = new Singleton();
      }
      return singleton;
   }
   public String otherOperation(){
      //方法实现
   }
}
 


Client:

 

String str = Singleton.getInstance().otherOperation();
 


多线程时使用 double-check 模式确保线程安全:

 

class Singleton{
   
   private Singleton(){
   }
   private static Singleton singleton = null;
   public static Singleton getInstance(){
      if(null == singleton)
         sychronized (Singleton.class){
          if(null == singleton){
             singleton = new Singleton();
          }
       }
    }
    return singleton;
  }
}
 

 

分享到:
评论
2 楼 gurudk 2009-02-01  
ws715 写道

缺一个私用的构造函数 private Singleton(){}

You are right thanks!
1 楼 ws715 2009-02-01  
缺一个私用的构造函数
private Singleton(){}

相关推荐

Global site tag (gtag.js) - Google Analytics