雙重鎖定:
public class Singleton
{
private static Singleton instance;
private static readonly object syncRoot = new object();
private Singleton()
{}
public static Singleton GetInstance()
{
if(instance == null)
{
lock(syncRoot)
{
if(instance == null)
{
instance = new Singleton();
}
}
}
return instance;
}
//Operation funtion()
}
靜态初始化:
public sealed class Singleton
{
private static readonly Singleton instance = new Singleton();
private Singleton(){}
public static Singleton GetInstance()
{
return instance;
}
//Operation funtion()
}
更多資訊請參考:大話設計模式!