参考
一、使用场景
在业务逻辑中唯一的对象建议使用单例模式,放置逻辑上的唯一对象被创建多次,比如一个进程中的配置管理对象,一个进程中使用一个管理对象,为了实现该对象不被多次创建,可以使用单例模式。
二、通用实现方法
懒汉式:对象在真正使用的地方再进行创建
CConfigManager* CConfigManager::instance()
{
g_ConfigManagerMtx.lock();
if (nullptr == m_pInstance)
{
m_pInstance = new CConfigManager();
if (nullptr != m_pInstance)
{
g_ConfigManagerMtx.unlock();
return m_pInstance;
}
else
{
CRRC_ERROR("nullptr == m_pInstance");
g_ConfigManagerMtx.unlock();
return nullptr;
}
}
else
{
g_ConfigManagerMtx.unlock();
return m_pInstance;
}
}
恶汉式:对象在程序运行时立即初始化