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();
            }

    输出结果:

  • 相关阅读:
    开发第七天
    项目进行ing
    Spring 计划
    0505--鲜花售卖网之“NABCD模型”
    --《软件工程》奖励之“黄色领骑衫”
    0329--Scrum团队准备工作
    0428数字口袋精灵app优化
    0421--"数字口袋精灵app"二次开发(Blackbriar团队开发)
    复利计算器app发布
    0415--博客欣赏与评论
  • 原文地址:https://www.cnblogs.com/netbatman/p/10404851.html
Copyright © 2011-2022 走看看