当前位置: 首页 > news >正文

C#-单例模式

文章目录

  • 单例模式的概述
  • 为什么会有单例模式
  • 如何创建单例模式
    • 1、首先要保证,该对象 有且仅有一个
    • 2、其次,需要让外部能够获取到这个对象
  • 示例
    • 通过 属性 获取单例

单例模式的概述

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

为什么会有单例模式

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

如何创建单例模式

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

对象的创建是通过 构造器,并在外部 new出来的;
C#中,会默认存在一个无参构造函数;
因此,需要将无参构造函数声明为【private】私有的,让外部无法访问,只在内部进行创建。

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

对象没有创建,就无法引用到内部的参数或者方法;
将方法、属性、变量声明为静态类型,就可以不需要创建对象,从而在外部获取;
因此需要引用【static】关键字,来声明获取唯一实例对象的方法或者属性。

示例

通过 属性 获取单例

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

运行结果:
运行结果

http://www.lryc.cn/news/152229.html

相关文章:

  • WSNs 安全技术
  • H5如何做页面下拉刷新和上拉加载
  • Camunda 7.x 系列【42】事件子流程
  • JVM类的加载过程
  • Jmeter如何设置中文版
  • flutter自定义按钮-文本按钮
  • 无涯教程-Android - CheckBox函数
  • [Go版]算法通关村第十五关青铜——用4KB内存寻找重复元素
  • OJ练习第159题——消灭怪物的最大数量
  • Prometheus-Rules(规则)
  • 打卡智能中国(六):村里出了“飞行员”
  • 自动化运维工具Ansible之playbooks剧本
  • K8S访问控制------认证(authentication )、授权(authorization )、准入控制(admission control )体系
  • 开开心心带你学习MySQL数据库之第三篇上
  • Mysql批量插入大量数据的方法
  • centos安装nginx实操记录(加安全配置)
  • 【中等】49. 字母异位词分组
  • Python3 条件控制
  • IDEA自定义模板
  • 【Unity3D】UI Toolkit简介
  • QT 界面相关操作
  • nestjs:docker build时执行npm install sharp提示downloading libvips socket hang up
  • 图像分类学习笔记(七)——MobileNet
  • ssm+vue宠物领养系统源码和论文
  • 阜时科技联合客户发布全固态激光雷达面阵SPAD芯片及雷达整机
  • leetcode 189. 轮转数组
  • 亚马逊广告收入突破百亿美元,有望成为下一个收入支柱来源?
  • MATLAB中isequal函数转化为C语言
  • 【MTK平台】根据kernel log分析wifi scan的时候流程
  • CVE-2023-23752:Joomla未授权访问漏洞复现