设计模式-单例模式

单例模式主要用于单一资源的访问。
下面仅列出比较好的实现方式,该实现方式具有以下特征

  • 支持多线程安全
  • 正常销毁
  • 使用c++实现:锁的部分使用Qt的QMutex

实现

Class NameSingleton

Singleton.h

class Singleton 
{
public:
 static Singleton *GetInstance()
 {
 if(nullptr == singleton_)
 {
 singleton_creat_lock_.lock();
 if(nullptr == singleton_)
 {
 static ConfigData singleton;
 singleton_ = &singleton;
 }
 singleton_creat_lock_.unlock();
 }
 return singleton_;
 }
private:
 static QMutex singleton_creat_lock_;
 static Singleton *singleton_; 
Singleton(){};~Singleton(){}; 

Singleton.cpp

// 注意:一定要初始化成员变量,否则编译时会出现undefined reference to的错误
QMutex Singleton::singleton_creat_lock_;
Singleton *Singleton::singleton_ = nullptr;
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容