设计模式
单例模式
-
保证一个类仅有一个实例,并提供一个访问它的全局访问点。
-
表示全局唯一类,在系统中只保留一份。
-
用于处理资源访问冲突(同时创建两个日志对象在写入时会存在日志信息相互覆盖)对象级别的锁还不够需要类级别的锁。
// 懒汉式单例模式
class Singleton
{
private:
Singleton() { }
static Singleton * pInstance;
public:
static Singleton * GetInstance()
{
if (pInstance == nullptr)
pInstance = new Singleton();
return pInstance;
}
};
// 线程安全的单例模式
class Singleton
{
private:
Singleton() { }
~Singleton() { }
Singleton(const Singleton &);
Singleton & operator = (const Singleton &);
public:
static Singleton & GetInstance()
{
static Singleton instance;
return instance;
}
};