C#-单例模式

文章目录

单例模式的概述

总结来说:

单例 就是只有 一个 实例对象。

模式 说的是设计模式,这是众多编程大佬、前辈们在实践过程中为了使程序更加的优美、执行效率更高等等等(具体参考 设计模式的六大原则)而创立出来的一些常用的解决方法(解决思路)。

为什么会有单例模式

程序或是软件是对现实生活中的一种抽象。

在现实生活中,可能会出现同一时间 只需要 一个对象执行某种行为,例如:操作系统中只存在一个任务管理器,一个国家只需要一个最高领导人等等......

如何创建单例模式

1、首先要保证,该对象 有且仅有一个

对象的创建是通过 构造器,并在外部 new出来的;

C#中,会默认存在一个无参构造函数;

因此,需要将无参构造函数声明为【private】私有的,让外部无法访问,只在内部进行创建。

2、其次,需要让外部能够获取到这个对象

对象没有创建,就无法引用到内部的参数或者方法;

将方法、属性、变量声明为静态类型,就可以不需要创建对象,从而在外部获取;

因此需要引用【static】关键字,来声明获取唯一实例对象的方法或者属性。

示例

通过 属性 获取单例

C# 复制代码
    class Single
    {
        //私有变量阻止外部获取
        //静态方法、属性中只能引用静态成员
        private static Single instance;
        
		//私有化无参构造函数,让外部无法创建
        private Single() { }
        
        //公开静态属性,用于外部获取
        public static Single Instance
        {
            get
            {
                if( instance == null)
                {
                    instance = new Single();
                }
                //返回实例对象
                return instance;
            }
        }

        public void Speak()
        {
            Console.WriteLine("我是一个属性获取的单例");
        }
    }
    
  class Program
    {
        static void Main(string[] args)
        {
        //通过属性获取单例
            Single.Instance.Speak();
            Console.ReadLine();
        }
    }

运行结果:

相关推荐
软件黑马王子6 小时前
C#初级教程(4)——流程控制:从基础到实践
开发语言·c#
水煮庄周鱼鱼10 小时前
C# 入门简介
开发语言·c#
软件黑马王子11 小时前
Unity游戏制作中的C#基础(6)方法和类的知识点深度剖析
开发语言·游戏·unity·c#
Nicole Potter12 小时前
请说明C#中的List是如何扩容的?
开发语言·面试·c#
gu2013 小时前
c#编程:学习Linq,重几个简单示例开始
开发语言·学习·c#·linq
pchmi18 小时前
CNN常用卷积核
深度学习·神经网络·机器学习·cnn·c#
yuanpan18 小时前
23种设计模式之《组合模式(Composite)》在c#中的应用及理解
开发语言·设计模式·c#·组合模式
滴_咕噜咕噜19 小时前
C#基础总结:常用的数据结构
开发语言·数据结构·c#
万兴丶1 天前
Unity 适用于单机游戏的红点系统(前缀树 | 数据结构 | 设计模式 | 算法 | 含源码)
数据结构·unity·设计模式·c#
程序猿多布1 天前
C#设计模式 学习笔记
设计模式·c#