zoukankan      html  css  js  c++  java
  • 单例模式

    记录下单例模式,方便以后使用:

        //单例模式
        //包含静态构造函数
        //公开的静态方法——提供对象实例,没有就创建
        //全局唯一静态实例
        public class Singleton
        {
            private static Singleton singleton;
            private static readonly object singletonLock = new object();
    
            //用于测试
            public string sDBconnection = "";
    
            private Singleton(string sdb)
            {
                sDBconnection = sdb;
                Console.WriteLine("构造函数初始化!!");
            }
    
            public static Singleton CreateInstance(string sdb)
            {
                if (singleton == null)
                {
                    lock (singletonLock)
                    {
                        if (singleton == null)
                        {
                            singleton = new Singleton(sdb);
                        }
                    }
                }
                return singleton;
            }
        }

    Main,方法中调用:

        static void Main(string[] args)
            {
                Singleton singleton = Singleton.CreateInstance("server=1;database=a");
                Singleton singleton1 = Singleton.CreateInstance("server=2;database=b");
                Singleton singleton2 = Singleton.CreateInstance("server=3;database=c");
                Singleton singleton3 = Singleton.CreateInstance("server=4;database=d");
    
                Console.WriteLine(singleton.sDBconnection);
                Console.WriteLine(singleton1.sDBconnection);
                Console.WriteLine(singleton2.sDBconnection);
                Console.WriteLine(singleton3.sDBconnection);
    
                Console.Read();
            }

    输出结果:

  • 相关阅读:
    截取字符串为20个字
    GitFlow
    CSS3盒模型display:box;box-flex:3;
    CSS移动端多行显示多余省略号
    2017年6大热门开源项目
    七周七学习成为数据分析师
    2017-写给5年后的自己
    XGeocoding使用手册
    读书的5个秘诀
    如何快速成为数据分析师?(知乎)
  • 原文地址:https://www.cnblogs.com/netbatman/p/10404851.html
Copyright © 2011-2022 走看看