單例模式最初的定義出現於《設計模式》(艾迪生維斯理, 1994):「保證乙個類僅有乙個例項,並提供乙個訪問它的全域性訪問點。」
特點:一是某個類只能有乙個例項;
二是它必須自行建立這個例項;
三是它必須自行向整個系統提供這個例項。
一、經典實現
usingsystem;
namespace
singletonpattern
//統一該類的
public
static
classicalsample getinstance()}}
console.writeline(
"獲取例項");
return
_classicalsample;}}
}
二、靜態建構函式實現
usingsystem;
namespace
singletonpattern
//靜態建構函式:第一次使用的時候執行,且只執行一次
static
staticconstructorsample()
public
static
staticconstructorsample getinstance()
}}
三、靜態變數實現
usingsystem;
namespace
singletonpattern
public
static
staticvariablesample getinstance()
}}
測試:
usingsystem;
using
system.collections.generic;
using
system.linq;
using
system.threading.tasks;
namespace
singletonpattern
static
void
classicalsampletest()
));}
taskfactory.continuewhenall(tasks.toarray(), p =>次例項
", p.count());
console.writeline(
"例項個數
", list.distinct().count());
});}
static
void
staticconstructorsampletest()
));}
taskfactory.continuewhenall(tasks.toarray(), p =>次例項
", p.count());
console.writeline(
"例項個數
", list.distinct().count());
});}
static
void
staticvariablesampletest()
));}
taskfactory.continuewhenall(tasks.toarray(), p =>次例項
", p.count());
console.writeline(
"例項個數
", list.distinct().count());
});}
}}
Singleton 單例 模式
singleton 模式的宗旨在於確保某個類只有乙個例項,別且為之提供乙個全域性訪問點。為了防止其他工作人員例項化我們的類,可以為該類建立唯一乙個構造器,並將構造器的可見 設定為私有。值得注意的是,如果我們建立了其他的非私有的構造器,或者根本沒有為該類提 供構造器,那麼其他人員還是能例項化我們的類。...
Singleton 單例 模式
今天看了,單例模式。感覺他的本質就是,控制類例項的個數。特例就是,控制static變數的唯一性,保證各個程式共享著同一例項。乙個例子 package singleton description 這是乙個單例模式的使用demo author kyle goal 實現乙個類僅有乙個例項 singleto...
單例(Singleton)模式
單例模式的特點 singleton模式包含的角色只有乙個,那就是singleton。singleton擁有乙個私有建構函式,確保使用者無法通過new取得singleton的例項。除此之外,該模式中包含乙個靜態私有成員變數instance與靜態公有方法instance。instance方法負責檢驗並例...