Singleton模式可以保證一個類別只有一個實例。
當Class只能有一個實例而且客戶可以從任何的訪問點訪問它時。
當這個唯一實例應該是通過子類化可擴展的,並且客戶應該無需更改代碼就能使用一個擴展的實例時。
例如使用在SQL SERVER上面把SQL的連接與指令包成一個Class
然後任何需要與SQL SERVER溝通的地方都可以直接透過此Class溝通
確保不會重複連線。
多執行序
public sealed class Singleton
{
static Singleton instance=null;
static readonly object padlock = new object();
Singleton()
{
}
public static Singleton Instance
{
get
{
if (instance==null)
{
lock (padlock)
{
if (instance==null)
{
instance = new Singleton();
}
}
}
return instance;
}
}
}
靜態初始
首次使用Instance 屬性之前,不會發生實例化。
public sealed class Singleton
{
static readonly Singleton instance=new Singleton();
static Singleton()
{
}
Singleton()
{
}
public static Singleton Instance
{
get
{
return instance;
}
}
}
相關文章: