C#单例模式Singleton的实现详解
单例模式是什么?
单例模式是一种创建型设计模式,其主题为确保一个类只有一个实例,并提供全局访问点。
实现单例模式
1. 延迟初始化
实现单例模式的一种简单方法是在实例化对象之前先执行一些操作。 假如我们只需要在调用该对象时才创建该对象,那么我们可以使用以下方式来实现:
public class Singleton
{
private static Singleton instance;
private Singleton() { }
public static Singleton Instance
{
get
{
if (instance == null)
{
instance = new Singleton();
}
return instance;
}
}
}
这种单例模式的实现方式被称为 “延迟初始化”,因为它仅在第一次使用单例对象时实例化该对象。
2. 饿汉式
另一种实现单例模式的方法是在类定义中立即创建单例对象。 在这种方法中,单例对象是静态并在加载类时创建的。
public class Singleton
{
private static readonly Singleton instance = new Singleton();
private Singleton() { }
public static Singleton Instance
{
get
{
return instance;
}
}
}
这种实现方法被称为 “饿汉式”,因为它立即初始化并且几乎无法撤销。
示例
我们可以通过以下方式使用上述代码:
Singleton instance1 = Singleton.Instance;
Singleton instance2 = Singleton.Instance;
if (instance1 == instance2)
{
Console.WriteLine("两个对象是同一个实例!");
}
else
{
Console.WriteLine("两个对象是不同实例!");
}
这个示例中输出的是 两个对象是同一个实例!
。
另外,我们也可以使用多线程和锁定来确保Singleton实例始终是唯一的。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C#单例模式Singleton的实现详解 - Python技术站