实现一个单例模式?要求线程同步、延迟加载和泛型。
如题,求一段代码 实现一个单例模式.要求线程同步、延迟加载和泛型。
我自己写的话,前2个都能实现,就是这个泛型不知道咋搞,请大牛指点
------解决方案--------------------难道是threaLocal??我的想法就是ThreadLocal<T> 这样一来放在threadlocal里面的东西不仅可以是线程安全而且是单例的。。。而且还有泛型。。。
------解决方案-------------------- 好吧 亲分拿来吧,下面这个满意了么
public sealed class Singleton<T> where T : new()//.net4.0以上可用
{
private static readonly Lazy<T> lazy =
new Lazy<T>(() => Activator.CreateInstance<T>());//new T());
public static T Instance { get { return lazy.Value; } }
private Singleton() { }
}
public class MyList<T>
{
private IList<IObserver<T>> myList;
public IList<IObserver<T>> MyList
{
get { return myList; }
}
public MyList()
{
myList = new List<IObserver<T>>();
}
}
下面是用法,完全解耦单例模式与应用类,嘿嘿
IList<IObserver<T>> obsList = Singleton<MyList<T>>.Instance.MyList;