设计模式(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
转载于:https://www.cnblogs.com/start1225/p/3720151.html
设计模式(1)单例模式相关推荐
- socket可以写成单例嘛_精读《设计模式 - Singleton 单例模式》
Singleton(单例模式) Singleton(单例模式)属于创建型模式,提供一种对象获取方式,保证在一定范围内是唯一的. 意图:保证一个类仅有一个实例,并提供一个访问它的全局访问点. 其实单例模 ...
- C#设计模式(1)——单例模式
原文地址:http://www.cnblogs.com/zhili/p/SingletonPatterm.html 一.引言 最近在设计模式的一些内容,主要的参考书籍是<Head First 设 ...
- java设计模式之单例模式(七种方法)
单例模式:个人认为这个是最简单的一种设计模式,而且也是在我们开发中最常用的一个设计模式. 单例模式的意思就是只有一个实例.单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例.这个 ...
- java单例模式的七种写法_Java设计模式之单例模式的七种写法
什么是单例模式? 单例模式是一种常见的设计模式,单例模式的写法有很多种,这里主要介绍三种: 懒汉式单例模式.饿汉式单例模式.登记式单例 . 单例模式有以下特点: 1.单例类只能有一个实例. 2.单例类 ...
- go设计模式之单例模式
在这里插入图片描述# go设计模式之单例模式 在软件开发时,经常会遇到有些对象需要保证只有一个实例的,那么这种设计模式就应用而生. 定义 单例模式,也叫单子模式,是一种常用的软件设计模式,属于创建型模 ...
- 一篇博客读懂设计模式之---单例模式
一篇博客读懂设计模式之---单例模式 一. 单例模式 单例对象(Singleton)是一种常用的设计模式.在Java应用中,单例对象能保证在一个JVM中,该对象只有一个实例存在.这样的模式有几个好处 ...
- Java 设计模式(3)单例模式
前言 概念: java中单例模式是一种常见的设计模式,单例模式的写法有好几种,这里主要介绍三种:懒汉式单例.饿汉式单例.登记式单例. 单例模式有以下特点: 1.单例类只能有一个实例. 2.单例类必须自 ...
- socket可以写成单例嘛_精读设计模式 Singleton 单例模式
Singleton(单例模式) Singleton(单例模式)属于创建型模式,提供一种对象获取方式,保证在一定范围内是唯一的. 意图:保证一个类仅有一个实例,并提供一个访问它的全局访问点. 其实单例模 ...
- 设计模式之单例模式——Singleton
设计模式之单例模式--Singleton 设计意图: 保证类仅有一个实例,并且可以供应用程序全局使用.为了保证这一点,就需要这个类自己创建自己的对象,并且对外有 ...
- 实践GoF的设计模式:单例模式
本文分享自华为云社区<[Go实现]实践GoF的23种设计模式:单例模式>,作者: 元闰子. 简述 GoF 对单例模式(Singleton)的定义如下: Ensure a class onl ...
最新文章
- 页面上水平飞舞的图片
- Elasticsearch,Kibana,Logstash,NLog实现ASP.NET Core 分布式日志系统
- android 仿360浮动,Android--模仿360底部导航按钮
- J2EE与.NET技术架构的比较
- Node.js+Express+MongoDB 实现学生增删改查
- php的web能力,web 性能的几个概念。
- 带有AWS DynamoDB的反应式Spring Webflux
- 线性调频信号 matlab
- 在带有OR条件的LEFT JOIN中使用索引(Using index in LEFT JOIN with OR condition)
- iTween for Unity
- 问题 A: 百钱买百鸡问题
- 7代cpu能装虚拟xp系统吗_【精选】减少DCS系统故障的实例与措施
- python2.7详细安装教程_python2.7安装图文教程
- 2019年下半年软件设计师下午真题试题(案例分析)及答案
- 计算机电路与电子学试卷,电路与电子学(第5版)学习指导与习题解答
- 高德离线数据api_高德开放平台数据开放情况和调用实验
- 一文详解 implementation api embed
- IP138 IP地址查询 php实例
- datatables分页,排序,ajax请求等参数设置
- [资讯]同济DI出品 | 绝对是史上最萌的机器人教具!!!
热门文章
- centos卸载不必要的程序_新手教程:从Mac上的启动台Launchpad删除应用程序
- Java char转换为String,String转换为char数组
- crontab 示例_Crontab示例–每5分钟
- Android Spinner –下拉列表
- 扫描仪scanner接口_QR Code Scanner –适用于Android的条形码扫描仪
- UI交互设计师在准备简历时应该注意什么?
- 实现人工智能价值的障碍有哪些?
- 那么多编程语言,为什么要选择C++?
- C++难吗?好学吗?C++到底怎么样?
- 深入理解JAVA中的NIO