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自动产生连接池进行管理,这时使用单例会带来很对麻烦。

 

posted on 2012-08-19 11:01  亚尔斯兰  阅读(258)  评论(0)    收藏  举报

导航