单例模式通用类

Posted x_蜡笔小新

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了单例模式通用类相关的知识,希望对你有一定的参考价值。

namespace System
{
    /// <summary>
    /// 为指定的实例创建有线程安全的单例模式。实例必须有一个公开的,无参数的构造方法,并且能正确的被实例化。
    /// </summary>
    /// <typeparam name="T">作为单例的对象。</typeparam>
    public static class Singleton<T>
       where T : class
    {
        static volatile T _instance;
        static object _lock = new object();

        /// <summary>

        /// 为指定对象创建实例。

        /// </summary>

        public static T CreateInstance()
        {
            if (_instance == null)
            {
                lock (_lock)
                {
                    if (_instance == null)
                    {
                        _instance = Activator.CreateInstance<T>();
                    }
                }
            }
            return _instance;
        }
    }
}

  

以上是关于单例模式通用类的主要内容,如果未能解决你的问题,请参考以下文章

二十三种设计模式(GOF23)详解1----单例模式(Singleton Pattern)

设计模式之单例模式

始终如一 -- 单例模式分析总结

单例模式和工厂方法模式

始终如一--单例模式分析总结

线程安全的单件模式(单例模式)