zoukankan      html  css  js  c++  java
  • 用C#改写Head First Design PatternsSingleTon(原创)

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;

    namespace SingleTon
    {
        public sealed class SingleObject
        {
            //公有字段
            public string name;


            //类似java的实现
            private static object syncRoot = new Object();
           
            //私有字段
            private volatile static SingleObject uniqueObj;

            private SingleObject(string name)
            {
                this.name = name;
            }

            public static SingleObject getInstance(string n)
            {
                if (uniqueObj == null)
                {
                    //lock (typeof(SingleObject))
                    lock (syncRoot)
                    {
                        uniqueObj = new SingleObject(n);
                    }
                }

                return uniqueObj;
            }

           
            //private static readonly SingleObject instance = new SingleObject();
            //private SingleObject() { }
            //public static SingleObject Instance
            //   {
            //      get 
            //      {
            //         return instance; 
            //      }
            //   }

        }
    }

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;

    namespace SingleTon
    {
        class Program
        {
            static void Main(string[] args)
            {
                SingleObject s = SingleObject.getInstance("a");
                SingleObject s1 = SingleObject.getInstance("b");

                System.Console.WriteLine(s.name);
                System.Console.WriteLine(s1.name);

                System.Console.ReadLine();

            }
        }
    }

    关于作者: 王昕(QQ:475660) 在广州工作生活30余年。十多年开发经验,在Java、即时通讯、NoSQL、BPM、大数据等领域较有经验。
    目前维护的开源产品:https://gitee.com/475660
  • 相关阅读:
    使用vagrant一键部署本地php开发环境(一)
    产品化机器学习的一些思考
    突破、进化,腾讯云数据库2018全年盘点
    WebGL 纹理颜色原理
    如何定制Linux外围文件系统?
    一文了解腾讯云数据库SaaS服务
    如何正确的选择云数据库?
    Node.js 进程平滑离场剖析
    Git合并不同url的项目
    mariadb 内存占用优化
  • 原文地址:https://www.cnblogs.com/starcrm/p/1519229.html
Copyright © 2011-2022 走看看