C#设计模式-单例模式

单例模式的定义:

  保证一个类仅只有一个实例,并提供一个访问它的全局访问点。

从定义我相信大家不可以很好的明白设计思想,让我们看一段代码。

 1     class Singleton
 2     {
 3         private static Singleton instance;
 4         private static readonly object syncRoot = new object();
 5         private Singleton()
 6         {
 7         }
 8 
 9         public static Singleton GetInstance()
10         {
11             if (instance == null)
12             {
13 
14                 lock (syncRoot)
15                 {
16 
17                     if (instance == null)
18                     {
19                         instance = new Singleton();
20                     }
21                 }
22             }
23             return instance;
24         }
25 
26     }
View Code

 以上函数就是单例模式的核心代码,创建唯一的实例。

主程序示例如下:

 1   static void Main(string[] args)
 2         {
 3             Singleton s1 = Singleton.GetInstance();
 4             Singleton s2 = Singleton.GetInstance();
 5 
 6             if (s1 == s2)
 7             {
 8                 Console.WriteLine("Objects are the same instance");
 9             }
10 
11             Console.Read();
12         }
View Code

主程序两次调用,实质只创建一个实例。

转载于:https://www.cnblogs.com/Smart-boy/p/4340427.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值