迷你定时提醒工具
事件提醒,定时提醒,待办事务,护眼配色,定时关机...
IT人士的必备工具。 查看详情
迷你图片批量处理工具
批量图片压缩、批量更改图片大小、批量添加水印、批量更改格式、批量增加特效...
图片处理必备工具。 查看详情
迷你文件校验工具
快速计算文件的MD5、SHA1、CRC32及文件属性。
文件安全必备工具。 查看详情
最新评论
技术
设计模式:单例模式
作者:系统管理员
发布日期:2013-12-08

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

构建方式有以下几种:

饿汉模式:

    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();
        }
    }

添加评论

 




验证码: