首页 > 其他 > 详细

单例模式

时间:2016-09-11 10:18:00      阅读:181      评论:0      收藏:0      [点我收藏+]

一. 懒汉模式-线程不安全

class CSingleton
{
    private: 
    static CSingleton* pInstance;
    CSingleton()//构造函数私有化,封死外界使用new创建实例的可能
    {
    }

    public:
    static CSingleton* getInstance()//实例化本类的唯一全局入口
    {
        if(NULL == pInstance)
        {
            pInstance = new CSingleton();
        }       
        return pInstance;
    }
};

问题1: 为什么单例模式的实例要设置为静态的?
从语义上讲,类的静态成员变量是所有对象共享的,而单例模式就是为了让该类所有实例共享同一个对象。
从语法上讲,常见的单例模式都是通过一个静态方法返回其单例,而静态方法的内部不能直接使用非静态变量。
问题2:为什么getInstance要设置成静态函数?
静态方法可以在实例化之前,就通过类名调用,此函数用于构造单利,会早于单利生成调用。

单例模式

原文:http://www.cnblogs.com/shijianchuzhenzhi/p/5861008.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!