千家信息网

web中怎么使用单例模式

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,这篇文章主要为大家展示了"web中怎么使用单例模式",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"web中怎么使用单例模式"这篇文章吧。介绍单例模式,顾名思
千家信息网最后更新 2026年10月31日web中怎么使用单例模式

这篇文章主要为大家展示了"web中怎么使用单例模式",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"web中怎么使用单例模式"这篇文章吧。

介绍

单例模式,顾名思义就是只有一个实例,并且她自己负责创建自己的对象,这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。下面我们来看下有哪几种实现方式吧。

实现方式

1、使用lock ,保证方法只有一个线程可以进入。

///      /// 单例类     ///      public class Singleton     {         private Singleton()         {             long lResult = 0;             for (int i = 0; i < 100 - 000 - 000; i++)             {                 lResult += i;             }             Thread.Sleep(2000);             Console.WriteLine($"{this.GetType().Name}完成构造....");         }         private static Singleton Instance = null;         private static readonly object Singleton_Lock = new object();         public static Singleton CreateInstance()         {             if (Instance == null)             {                 lock (Singleton_Lock)//保证方法块儿只有一个线程可以进入                 {                     Console.WriteLine("进入lock排队....");                     Thread.Sleep(1000);                     if (Instance == null)                         Instance = new Singleton();                 }             }             return Instance;         }          public static void DoNothing()         {             Console.WriteLine("DoNothing");         }          public void Show()         {             Console.WriteLine($"{this.GetType().Name} Show....");         }     }

2、使用静态构造函数,由CLR调用,在类型第一次被使用前调用,且只调用一次。

///      /// 单例类     ///      public class SingletonSecond     {         private SingletonSecond()         {             long lResult = 0;             for (int i = 0; i < 100 - 000 - 000; i++)             {                 lResult += i;             }             Thread.Sleep(2000);             Console.WriteLine($"{this.GetType().Name}完成构造....");         }         private static SingletonSecond Instance = null;         ///          /// 静态构造函数,由CLR调用,在类型第一次被使用前调用,且只调用一次!         ///          static SingletonSecond()         {             Instance = new SingletonSecond();         }         public static SingletonSecond CreateInstance()         {                          return Instance;         }          public static void DoNothing()         {             Console.WriteLine("DoNothing");         }          public void Show()         {             Console.WriteLine($"{this.GetType().Name} Show....");         }     }

3、使用静态字段,由CLR调用,在类型第一次被使用前初始化,且只初始化一次。

///      /// 单例类     ///      public class SingletonThird     {         private SingletonThird()         {             long lResult = 0;             for (int i = 0; i < 100 - 000 - 000; i++)             {                 lResult += i;             }             Thread.Sleep(2000);             Console.WriteLine($"{this.GetType().Name}完成构造....");         }         ///          /// 静态字段,由CLR调用,在类型第一次被使用前初始化,且只初始化一次!         ///          private static SingletonThird Instance = new SingletonThird();                 public static SingletonThird CreateInstance()         {                          return Instance;         }          public static void DoNothing()         {             Console.WriteLine("DoNothing");         }          public int iNum = 0;         public void Show()         {             Console.WriteLine($"{this.GetType().Name} Show..{iNum++}..");         }          public void Add()         {             this.iNum++;         }     }

使用场景

1、需要生成唯一序列的环境。

2、需要频繁实例化然后销毁的对象。

3、创建对象时耗时过多或者耗资源过多,但又经常用到的对象。

4、方便资源相互通信的环境。

以上是"web中怎么使用单例模式"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

对象 模式 第一次 类型 静态 内容 只有 实例 方式 篇文章 函数 字段 方法 环境 线程 过多 保证 学习 帮助 频繁 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 瑰夏咖啡 中智农互联网科技 互联网科技公司简介 A股互联网金融科技公司 科技创新与互联网经济 互联网金融科技创新 互联网科技ppt模板 科技互联网创业计划书 四个字互联网科技公司取名 互联网科技股午盘股票涨跌 恒生科技互联网指数分析 昭通云南众福互联网科技有限公司 花神(南京)互联网科技有限公司 内蒙古九一互联网科技 山东有哪些互联网科技公司 东营紫格互联网科技 广州燕处互联网科技有限公司 互联网金融运营模式中的金融科技 中国科技和美国互联网 互联网科技对化妆品行业 科技互联网龙头 左右互联网络科技 承德科技产业互联网发展 互联网还是高科技吗 洛阳共同富裕互联网科技有限公司 互联网科技圈年度人物 广州千川互联网科技有限公司 山东大美朱楼互联网科技有限公司 求路客互联网科技电话 科技互联网公司两年变化
0