首页 > 其他 > 详细

(转)设计模式_Singleton单例模式

时间:2016-05-20 09:52:54      阅读:170      评论:0      收藏:0      [点我收藏+]

 

  静态初始化

public sealed class Singleton 
{ 
   private static readonly Singleton instance = new Singleton(); 
   private Singleton(){} 
   public static Singleton Instance 
   { 
      get  
      { 
         return instance;  
      } 
   } 
} 

Double-Check Locking  两次检查锁定
public sealed class Singleton 
{ 
   private static volatile Singleton instance; 
   private static object syncRoot = new Object(); 
   private Singleton() {} 
   public static Singleton Instance 
   { 
      get  
      { 
         if (instance == null)  
         { 
            lock (syncRoot)  
            { 
               if (instance == null)  
                  instance = new Singleton(); 
            } 
         } 
         return instance; 
      } 
   } 
} 
延迟加载
public sealed class Singleton
{
    private static readonly Lazy<Singleton> lazy =
        new Lazy<Singleton>(() => new Singleton());

    public static Singleton Instance { get { return lazy.Value; } }

    private Singleton()
    {
    }
}
延伸阅读:https://msdn.microsoft.com/zh-CN/Library/ms998558.aspx
http://www.cnblogs.com/rush/archive/2011/10/30/2229565.html

(转)设计模式_Singleton单例模式

原文:http://www.cnblogs.com/hhhh2010/p/5510912.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!