设计模式(1)单例模式

程序中有时候需要保存全局的数据,比如程序的配置文件,需要随时检索的.比如程序中有些变量需要全局保存全局用,这时候我们不想用一个全局变量来保存

这时候,可以使用单例模式,从名称可以看出,单例模式就是类的实例全局只创建一个.怎么样才能保存只创建一个实例呢?

我们可以设置标识位,创建过的就不再创建了.下面是单例的简单实现

  template<class T>class Singleton{public:static T* GetInstance(){static Mutex mutex;if(!ms_instance){Locker locker(mutex);if (!ms_instance){ms_instance = new T;}}return ms_instance;}static void SetInstance(T* pInst){ms_instance = pInst;}static void DeleteInstance(){if (ms_instance){delete ms_instance;ms_instance = NULL;}}private:class Garbo{public:~Garbo(){if( Singleton::ms_instance ){delete ms_instance;ms_instance = NULL;}}};static Garbo garbo;protected:Singleton() {}~Singleton() {}Singleton(const Singleton&) {}Singleton& operator=(const Singleton&) {}private:static T*         ms_instance;};template<class T>T* Singleton<T>::ms_instance = 0;

  

用法:

class Test : public Singleton<Test>

{

//your code

}

Test::GetInstance()->your method

posted on 2014-05-10 10:41 九路313 阅读(...) 评论(...) 编辑 收藏

转载于:https://www.cnblogs.com/start1225/p/3720151.html

设计模式(1)单例模式相关推荐

  1. socket可以写成单例嘛_精读《设计模式 - Singleton 单例模式》

    Singleton(单例模式) Singleton(单例模式)属于创建型模式,提供一种对象获取方式,保证在一定范围内是唯一的. 意图:保证一个类仅有一个实例,并提供一个访问它的全局访问点. 其实单例模 ...

  2. C#设计模式(1)——单例模式

    原文地址:http://www.cnblogs.com/zhili/p/SingletonPatterm.html 一.引言 最近在设计模式的一些内容,主要的参考书籍是<Head First 设 ...

  3. java设计模式之单例模式(七种方法)

    单例模式:个人认为这个是最简单的一种设计模式,而且也是在我们开发中最常用的一个设计模式. 单例模式的意思就是只有一个实例.单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例.这个 ...

  4. java单例模式的七种写法_Java设计模式之单例模式的七种写法

    什么是单例模式? 单例模式是一种常见的设计模式,单例模式的写法有很多种,这里主要介绍三种: 懒汉式单例模式.饿汉式单例模式.登记式单例 . 单例模式有以下特点: 1.单例类只能有一个实例. 2.单例类 ...

  5. go设计模式之单例模式

    在这里插入图片描述# go设计模式之单例模式 在软件开发时,经常会遇到有些对象需要保证只有一个实例的,那么这种设计模式就应用而生. 定义 单例模式,也叫单子模式,是一种常用的软件设计模式,属于创建型模 ...

  6. 一篇博客读懂设计模式之---单例模式

    一篇博客读懂设计模式之---单例模式 一.  单例模式 单例对象(Singleton)是一种常用的设计模式.在Java应用中,单例对象能保证在一个JVM中,该对象只有一个实例存在.这样的模式有几个好处 ...

  7. Java 设计模式(3)单例模式

    前言 概念: java中单例模式是一种常见的设计模式,单例模式的写法有好几种,这里主要介绍三种:懒汉式单例.饿汉式单例.登记式单例. 单例模式有以下特点: 1.单例类只能有一个实例. 2.单例类必须自 ...

  8. socket可以写成单例嘛_精读设计模式 Singleton 单例模式

    Singleton(单例模式) Singleton(单例模式)属于创建型模式,提供一种对象获取方式,保证在一定范围内是唯一的. 意图:保证一个类仅有一个实例,并提供一个访问它的全局访问点. 其实单例模 ...

  9. 设计模式之单例模式——Singleton

                        设计模式之单例模式--Singleton 设计意图: 保证类仅有一个实例,并且可以供应用程序全局使用.为了保证这一点,就需要这个类自己创建自己的对象,并且对外有 ...

  10. 实践GoF的设计模式:单例模式

    本文分享自华为云社区<[Go实现]实践GoF的23种设计模式:单例模式>,作者: 元闰子. 简述 GoF 对单例模式(Singleton)的定义如下: Ensure a class onl ...

最新文章

  1. 页面上水平飞舞的图片
  2. Elasticsearch,Kibana,Logstash,NLog实现ASP.NET Core 分布式日志系统
  3. android 仿360浮动,Android--模仿360底部导航按钮
  4. J2EE与.NET技术架构的比较
  5. Node.js+Express+MongoDB 实现学生增删改查
  6. php的web能力,web 性能的几个概念。
  7. 带有AWS DynamoDB的反应式Spring Webflux
  8. 线性调频信号 matlab
  9. 在带有OR条件的LEFT JOIN中使用索引(Using index in LEFT JOIN with OR condition)
  10. iTween for Unity
  11. 问题 A: 百钱买百鸡问题
  12. 7代cpu能装虚拟xp系统吗_【精选】减少DCS系统故障的实例与措施
  13. python2.7详细安装教程_python2.7安装图文教程
  14. 2019年下半年软件设计师下午真题试题(案例分析)及答案
  15. 计算机电路与电子学试卷,电路与电子学(第5版)学习指导与习题解答
  16. 高德离线数据api_高德开放平台数据开放情况和调用实验
  17. 一文详解 implementation api embed
  18. IP138 IP地址查询 php实例
  19. datatables分页,排序,ajax请求等参数设置
  20. [资讯]同济DI出品 | 绝对是史上最萌的机器人教具!!!

热门文章

  1. centos卸载不必要的程序_新手教程:从Mac上的启动台Launchpad删除应用程序
  2. Java char转换为String,String转换为char数组
  3. crontab 示例_Crontab示例–每5分钟
  4. Android Spinner –下拉列表
  5. 扫描仪scanner接口_QR Code Scanner –适用于Android的条形码扫描仪
  6. UI交互设计师在准备简历时应该注意什么?
  7. 实现人工智能价值的障碍有哪些?
  8. 那么多编程语言,为什么要选择C++?
  9. C++难吗?好学吗?C++到底怎么样?
  10. 深入理解JAVA中的NIO