单例模式

所谓的单例模式是设计模式中最简单的设计模式,只是一种特殊类的写法。何为单例,从字面上理解单例单例”单独的特例“(个人理解术语)。为什么会出现单例呢,编程的世界其实就是模拟现实世界,在现实世界中独一无二的东西多得很,比如就一个太阳,就一个地球,就一个太平洋。。。。。。。

单例就是模拟现实中独一无二的东西,在程序中被抽象成一个类,但是这个类非常的特殊,因为这个东西是独一无二的东西。所以只能被初始化一次,那如何来实现初始话一次呢,其实你网上一百度单例网上有很多写单例的例子,但是各有一些弊端,比如并发的时候会出现初始化2次的啊,这里我介绍的是一种相对最简单不存在多线程问题的写法(以c#为例子)

 

毛主席独一无二

class MaoZhuXi

{

      private  static MaoZhuXi instance = new MaoZhuXi();//第二步建议一个静态属性(静态属性的意义就是这个属性归属于这个类在类的创建初期和类一起被初始化,只能被初始化一次。关于静态属性请搜索相关概念看看)来获得一个只被初始化一次的对象。问题又来了怎样被外界访问呢?请看第三步。

 

  private MaoZhuXi(){};//第一步让构造函数为私有的,这样就可以解决不能被夺次初始化了,但是这样一次都不能初始化了,那怎么解决不能初始化的问题呢?看第二步

  public static MaoZhuXi GetMao()//第三步用一个静态函数返回出那个静态属性指向的对象。

  {

    return instance;

  }

}

 

 

以上只是写单例的一种方式,但是自认是最简单的一种同时不存在并发性问题

posted @   Smart_Coder  阅读(181)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
点击右上角即可分享
微信分享提示