Qt-单例模式

单例模式

    定义:保证一个类仅有一个实例,并提供一个访问它的全局访问点。

               

   最常见的使用方法:

class CSingleton
{
private:
    CSingleton() //构造函数是私有的
    {
    }
public:
    static CSingleton * GetInstance()
    {
        static CSingleton *m_pInstance;
        if(m_pInstance == NULL) //判断是否第一次调用
            m_pInstance = new CSingleton();
        return m_pInstance;
    }
};

显而易见,构造函数私有化。

提供一个public 可以获取这个实例,也是唯一一个实例。

注意点:

1. 单例模式和它的名字一样,只有一个实例,独一无二。

2. 它是自行创建自己的实例,而不是 在其他类中new出来的。

3. 它提供public接口,供其他对象使用。


常用的方向:线程池(threadpool)、缓存(cache)、对话框、处理偏好设置和注册表(registry)的对象、日志对象、充当打印机、显卡等设备的驱动程序的对象。


最常见的一个出错地方:

Qt-单例模式_第1张图片


解决这个问题,网上最常见的方式是,一种加锁,一种是在启程序的时候就初始化此实例。

没有实践过,不做过多叙述。

你可能感兴趣的:(Qt设计模式)