zoukankan      html  css  js  c++  java
  • (转)设计模式_Singleton单例模式

      静态初始化

    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

  • 相关阅读:
    js中 offset /client /scroll总结
    python的安装和环境配置
    git详解
    Xmind
    Linux 文件搜索命令
    Linux 文件和目录命令
    Linux 系统关机重启命令
    Linux系统信息命令
    Day07
    ModuleNotFoundError: No module named 'pysqlite2'
  • 原文地址:https://www.cnblogs.com/hhhh2010/p/5510912.html
Copyright © 2011-2022 走看看