设计模式-单例模式

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

  • 支持多线程安全
  • 正常销毁
  • 使用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辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 单例模式(Singleton Pattern)是众多设计模式中较为简单的一个,同时它也是面试时经常被提及的问题,如...
    廖少少阅读 3,733评论 0 1
  • 单例模式:保证一个类仅有一个实例,并提供一个访问它的全局访问点。为了解决两个问题:全局访问初始化控制 多线程单例当...
    Mitchell阅读 2,166评论 1 0
  • 在Java设计模式中,单例模式相对来说算是比较简单的一种构建模式。适用的场景在于:对于定义的一个类,在整个应用程序...
    时待吾阅读 1,756评论 0 0
  • 单例模式是设计模式中使用最普遍的模式之一,它是一种对象创建模式,用于创建一个对象的具体示事例,它可以确保系统中一个...
    flyingzh阅读 3,418评论 0 1
  • 单例模式 单例模式有以下特点: 单例类只能有一个实例 单例类必须自己创建自己的唯一实例 单例类必须给所有其他对象提...
    Mr_不靠谱_先森阅读 2,905评论 0 0

友情链接更多精彩内容