引入背景
一个类中只能有一个实例。
代码实现
单例类:
public class Singleton
{
private Singleton(){}
public static volatile Singleton GetInstance()
{
if (uniqueInstance == null)
{
lock (locker)
{
if (uniqueInstance == null)
{
uniqueInstance = new Singleton();
}
}
}
return uniqueInstance;
}
private static Singleton uniqueInstance;
private static readonly object locker = new object();
}
调用:
class Program
{
static void Main(string[] args)
{
Singleton singleton1 = Singleton.GetInstance();
Singleton singleton2 = Singleton.GetInstance();
if (singleton1 == singleton2)
Console.WriteLine("is equal");
}
}
结构组成
单例模式包括一个Singleton类,主要要是定义创建实例的方法,允许访问它的唯一实例,该方法是一个静态方法。