1.定義:
某一個類只有一個實例,並且這個實例是在類內部進行實例化,並向整個系統提供該實例。
2.單例模式的通用代碼:
public sealed class Singleton{private static sealed Singleton _singleton = new Singleton ();private Singleton(){ }public static Singleton GetInstance(){return _singleton;}public static void DoSomething(){ }}
3.優點:
3.1減少內存開銷,適合對象頻繁創建和銷毀,提升性能。
3.2生成全局對象,資源共享。
4.單例模式使用場景

5.線程安全的單例模式:
總結
- 本質:內存只能有一個對象;
- 使用場景:定時器;計數器;一個項目只要一個共享訪問點和共享數據;創建對象消耗資源比較多,如IO操作和數據庫讀取注意;
線程安全的單例模式代碼:
public sealed class Singleton
{
private static Singleton _singleton = null;
private static readonly object _synLock = new object();
private Singleton(){}
public static Singleton GetInstance()
{
lock (_synLock){
if (_singleton==null)_singleton = new Singleton();
return _singleton;
}
}
}