日期:2014-05-18  浏览次数:20760 次

实现一个单例模式?要求线程同步、延迟加载和泛型。
如题,求一段代码    实现一个单例模式.要求线程同步、延迟加载和泛型。

我自己写的话,前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;