单例模式(Singleton Pattern)是最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。
这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。
单例模式可以分为饿汉模式和懒汉模式
饿汉模式:
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 }
懒汉模式需要考虑线程安全问题:
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 }