单例模式(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 }