單例模式(Singleton Pattern)是最簡單的設計模式之一。這種類型的設計模式屬於建立型模式,它提供了一種建立對象的最佳方式。設計模式
這種模式涉及到一個單一的類,該類負責建立本身的對象,同時確保只有單個對象被建立。這個類提供了一種訪問其惟一的對象的方式,能夠直接訪問,不須要實例化該類的對象。安全
單例模式能夠分爲餓漢模式和懶漢模式ide
餓漢模式:函數
1 public class Singleton 2 { 3 private static Singleton Instance = null; 4 5 private static object locker = new object(); 6 7 private Singleton() { } //私有化構造函數 8 9 public static Singleton GetInstance() 10 { 11 return Instance; 12 } 13 }
懶漢模式須要考慮線程安全問題:spa
1 public class Singleton 2 { 3 private static Singleton Instance = null; 4 5 private static object locker = new object(); 6 7 private Singleton() { } //私有化構造函數 8 9 public static Singleton GetInstance() 10 { 11 //雙重檢查加鎖機制 12 if (Instance == null) 13 { 14 lock (locker) 15 { 16 if (Instance == null) 17 { 18 Instance = new Singleton(); 19 } 20 } 21 } 22 return Instance; 23 } 24 }