C# 泛型 单例模式 探讨与应用
单例模式就是保证在整个应用程序的生命周期中,在任何时刻,被指定的类只有一个实例,并为客户程序提供一个获取该实例的全局访问点。
泛型单例:
单例模式
1 public class Singleton<T> where T:new() 2 { 3 /// <summary> 4 /// 对象实例 5 /// </summary> 6 private static readonly T Inst=new T(); 7 /// <summary> 8 /// 获取 类型 单例 9 /// </summary> 10 public static T Instance 11 { 12 get 13 { 14 return Inst; 15 } 16 } 17 }
代码很简单,他的主要作用是给其他类提供包装。
用法:
1 //直接获得工厂对象实例 2 //调用指定方法 3 var pet= Singleton<PetFactory>.Instance.GetPet();
下面我说说,那些情况适合单例,那些情况不适合。
偶然使用的对象
比如:如果该对象的生存期不是很长,不要使用单例模式。
由池管理的对象
比如:SqlConnection对象,它是可以由CLS自动产生连接池进行管理,这时使用单例会带来很对麻烦。

浙公网安备 33010602011771号