设计模式:单例模式

by MN-SOFT.COM 13. 二月 2012 19:25

可以保证一个类仅有一个实例,并提供一个访问它的全局访问点,比如程序的配置信息,可使用该模式实现。

构建方式有以下几种:

饿汉模式:

    public sealed class Settings
    {
        private Settings() { }

        private static readonly Settings _instance = new Settings();
        public static Settings Instance
        {
            get
            {
                return _instance;
            }
        }
    }

懒汉模式:直到对象要求产生一个实例才执行实例化,避免了在应用程序启动时实例化不必要的对象;但在多线程的环境下有可能得到Settings类的多个实例。

    public sealed class Settings
    {
        private Settings() { }

        private static Settings _instance = null;
        public static Settings Instance
        {
            get
            {
                if (_instance == null)
                {
                    _instance = new Settings();
                }
                return _instance;
            }
        }
    }

Bill Pugh的解决方案:及延迟初始化,又保证了线程安全。

    public sealed class Settings
    {
        private Settings() { }

        public static Settings Instance
        {
            get
            {
                return SingletonHolder.instance;
            }
        }

        private class SingletonHolder
        {
            internal static readonly Settings instance = new Settings();
        }
    }

Creative Commons License 本文基于署名-非商业性使用-相同方式共享 3.0 Unported许可协议发布,欢迎转载或创作演绎作品,但是必须保留本文的署名迷你软件(包含链接),具体操作方式可参考此处。如您有任何疑问或者授权方面的协商,请给我留言

Tags:

.NET | 软件技术

评论 (1) -

干洗机
2012-3-21 13:54:53 #

写的非常的不错,我很赞赏!

回复

添加评论




biuquote
  • 评论
  • 在线预览
Loading






关于

迷你软件为您提供免费绿色的软件产品。

联系邮箱:admin@mn-soft.com

RecentComments

Comment RSS