.NET 设计模式之单例模式(一)
1.简单解释:在创建对象时,无论创建多少次,在堆空间上只会申请一次内存空间。
2.例子(1):
public class Singleton{ private static Singleton _singleton = null; //锁 private static Object singleton_lock = new Object(); //构造函数私有化 private Singleton(){ //初始化代码 } public static Singleton CreateInstance(){ if(_singleton == null) //先看看是否初始化过,避免每次进入都要判断锁 { lock(_singleton_lock){ //防止多个线程进入 if(_singleton == null){ //判断单例对象是否为null _singleton = new Singleton(); } } } return _singleton; } }
例子(2):
public class Singleton{ private static Singleton _singleton = null; //构造函数私有化 private Singleton(){ //初始化代码 } //静态构造函数 static Singleton(){ _singleton = new Singleton(); } public static Singleton CreateInstance(){ return _singleton; } }
例子(3):
public class Singleton{ private static Singleton _singleton = new Singleton(); //构造函数私有化 private Singleton(){ //初始化代码 } public static Singleton CreateInstance(){ return _singleton; } }