1.应用场景添加一个:管理类,负责管理对象。
2.特点补充:
a. 私有化构造
b. 静态接口返回单例对象
c. 静态对象,全局存在
3. 代码实现:
.h
class Singleton
{
private:
Singleton();
public:
~Singleton();
static Singleton* getIntance();
private:
static Singleton *m_pSingleton;
};
.cpp
static Singleton* Singleton::m_pSingleton = nullptr;
Singleton::Singleton()
{
}
Singleton::~Singleton()
{
QMutex mutex;
QMutexLocker locker(&mutex);
if (m_pSingleton)
{
delete m_pSingleton;
m_pSingleton = nullptr;
}
}
static Singleton* Singleton::getIntance()
{
if (!m_pSingleton)
{
QMutex mutex;
QMUtexLocker locker(&mutex);
if (!m_pSingleton)
{
m_pSingleton = new Singleton;
}
}
return m_pSingleton;
}