C#设计模式:Singleton模式
2007-12-30 12:01
246 查看
如何保证一个类只能有一个实例存在?
在多线程情况下如何解决?
using System;
using System.Collections.Generic;
using System.Text;
namespace Singleton
//多线程版本的Singleton
namespace SingletonMultiThread
//经典的Singleton实现:仅仅适合无参构造器对象(可用属性实现扩展)
namespace classicalSingleton
{
sealed class Singleton
{
private Singleton() { }
//内联初始化,后面的new是个静态构造器
public static readonly Singleton Instance = new Singleton();
}
class Program
{
static void Main(string[] args)
{
Singleton s1 = Singleton.Instance;
Singleton s2 = Singleton.Instance;
if (object.ReferenceEquals(s1, s2))
Console.WriteLine("两个对象是相同的实例。");
else
Console.WriteLine("两个对象非相同的实例。");
}
}
}
在多线程情况下如何解决?
using System;
using System.Collections.Generic;
using System.Text;
namespace Singleton
//多线程版本的Singleton
namespace SingletonMultiThread
//经典的Singleton实现:仅仅适合无参构造器对象(可用属性实现扩展)
namespace classicalSingleton
{
sealed class Singleton
{
private Singleton() { }
//内联初始化,后面的new是个静态构造器
public static readonly Singleton Instance = new Singleton();
}
class Program
{
static void Main(string[] args)
{
Singleton s1 = Singleton.Instance;
Singleton s2 = Singleton.Instance;
if (object.ReferenceEquals(s1, s2))
Console.WriteLine("两个对象是相同的实例。");
else
Console.WriteLine("两个对象非相同的实例。");
}
}
}
相关文章推荐
- c#设计模式- Singleton模式
- 重温C#设计模式-安全的Singleton模式
- c# 设计模式:观察者模式
- C#设计模式—单例模式
- C#设计模式-工厂方法(总结)
- C#设计模式系列:状态模式(State)
- C#设计模式系列:建造者模式(Builder)
- 乐在其中设计模式(C#) - 策略模式(Strategy Pattern)
- C#中的异步调用及异步设计模式(一)
- 【C#】设计模式-创建型模式
- C#设计模式学习笔记-单例模式
- 设计模式-简单工厂模式(SimpleFactory-C#)
- 设计模式----组合模式(C#)
- 【设计模式】Singleton模式C++实现
- C#设计模式学习资料--创建者模式
- c#设计模式- Simple Factory模式(简单工厂)
- 使用 C# (.NET Core) 实现命令设计模式 (Command Pattern)
- C# 判断是否处于设计模式中(IsDesignMode)
- C# 设计模式 (1) Factory Method 模式
- C#命令模式-设计模式学习