• C#单例模式


    第一次接触单例模式还是在我学习ios的时候用oc来实现的单例模式。那时候学的也是乱糟糟的。我刚开始以为C# 是没有单例模式的,后来看了好多东西才发现原来C#也有单例模式。

    单例模式顾名思义,就是在整个程序生命周期中有且仅有一个实例。那么在C#中怎么实现呢?

    C#中实现单例模式其实很简单要考两样东西,私有构造函数、和static的对象。

    下面代码示例了一个简单的单例模式的一个类。

    public class SingleClass
    {
        private static SingleClass _sigle = null;
    
        /// <summary>
        /// 私有化构造函数
        /// </summary>
        private SingleClass() { }
    
        public static SingleClass GetInstance()
        {
            if (sigle == null)
            {
                _sigle = new SingleClass();
    
            }
            return _sigle;
        }
    }

    看了代码那么我们来理一理思路。

    1、通过私有构造函数来防止通过new来创建该类的对象。

    2、通过私有字段_sigle来存储该类的对象。

    3、通过共有静态方法GetInstance来获取到这个类的对象。

    这个GetInstance其实也很简单他会先判断私有字段_sigle是否已经存储了这个类的对象如果是则直接返回这个对象如果不是则new一个新对象并赋值给字段_sigle。

    也许大家会说为什么这里可以new呢?很简单这里是在这个类的内部也就是可以调用这个类的私有构造函数。

    大家知道静态字段、属性和方法都是属于类的在整个程序的生命周期内斗是存在的所以_sigle只能被赋值一次也就实现了整个应用程序生命周期内该类只能创建一次实例的目的。

    =============================================

    2020-11-15

    引用leolion大神的内容:https://www.cnblogs.com/leolion/p/10241822.html

    我觉得还是大神写的比较好。

  • 相关阅读:
    git config 命令各参数有何区别
    Git 初始化
    Linux 安装 Git
    在Mac OS 上安装 Git
    maven 部署到远程仓库(私服)
    Git与SVN的区别
    windows挂载NFS文件系统无法访问/修改文件解决
    mysql5.7写入数据时间相差13/14小时解决
    mysql配置文件不生效解决
    springdata jpa mysql5.7写入中文乱码解决
  • 原文地址:https://www.cnblogs.com/Schme/p/4742500.html
Copyright © 2020-2023  润新知