设计模式之单例模式(六)

2020/1/21 14:37:55 人评论 次浏览 分类:学习教程

单例模式保证整个程序运行期间最多只有一个实例;可以实现对象的复用,减少对象多次构造所带来的时间损耗和占用资源。一般只有在必须保证只有一个实例,多个实例反而会出问题的情况下使用, 也可以直接利用IOC容器来实现单例的效果。

以下是单例模式(C#)的三种实现方式:

    public class Singletion
    {
        private Singletion() { }

        private static Singletion singletion = null;
        private static readonly object  obj_lock = new object();
        public static Singletion GetInstance()
        {
            if ((singletion == null)) //双判断+锁实现,防止多线程并发,且又允许多线程并行执行
            {
                lock (obj_lock)
                {
                    if (singletion == null)
                        singletion = new Singletion();
                }
            }
            return singletion;
        }
    }

 


    public class Singletion
    {
        private Singletion() { }

        //由CLR调用。在此类第一次被使用前初始化,且只初始化一次
        static Singletion()
        {
            singletion = new Singletion();
        }
        private static Singletion singletion = null;
        public static Singletion GetInstance()
        {
            return singletion;
        }
    }
 public class Singletion
    {
        private Singletion() { }
        //由CLR调用。在此类第一次被使用前初始化,且只初始化一次
        private static Singletion singletion = new Singletion();
        public static Singletion GetInstance()
        {
            return singletion;
        }
    }

 

熊大哈
发布了68 篇原创文章 · 获赞 28 · 访问量 4万+
私信 关注

相关资讯

    暂无相关的资讯...

共有访客发表了评论 网友评论

验证码: 看不清楚?
    -->