C++设计模式-singleton单例模式_new
class nocopyable
{
protected:
nocopyable(){};
virtual ~nocopyable(){};
nocopyable(const nocopyable&);
nocopyable& operator = (const nocopyable&);
};
template <typename T> class singleton : public nocopyable { public: static T* instance() { if (m_instance == NULL) { m_instance = new T(); } return m_instance; } static T * get_instance() { if (m_instance == NULL) { printf("m_instance is NULL\n"); } return m_instance; } static void destory_instance() { if (m_instance != NULL) { delete m_instance; m_instance = NULL; } } private: static T *m_instance; }; template<typename T> T* singleton<T>::m_instance = NULL;
class MySingletonClass : public singleton<MySingletonClass> {
public:
MySingletonClass() {}
~MySingletonClass() {}
public:
void DoPrint() {
printf("This is MySingletonClass.\n");
}
};
int main()
{
MySingletonClass::instance();
MySingletonClass::get_instance()->DoPrint();
MySingletonClass::destory_instance();
getchar();
;
}
C++设计模式-singleton单例模式_new的更多相关文章
- [C++设计模式] singleton 单例模式
这个设计模式主要目的是想在整个系统中仅仅能出现一个类的实例.这样做当然是有必定的.比方你的软件的全局配置信息,或者是一个Factory,或是一个主控类,等等. 你希望这个类在整个系统中仅仅能出现一个实 ...
- 一天一个设计模式——(Singleton)单例模式(线程安全性)
一.模式说明 有时候,我们希望在应用程序中,仅生成某个类的一个实例,这时候需要用到单例模式. 二.模式类图 三.模式中的角色 Singleton角色,该模式中仅有的一个角色,该角色有一个返回唯一实例的 ...
- 设计模式—singleton(单例模式)
单例模式 单例设计模式属于创建型模式,它提供了一种创建对象的最佳方式.这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建. 这个类提供了一种访问其唯一的对象的方式,可以直接 ...
- C++设计模式-Singleton单例模式
template <typename T> class Singleton { public: template <typename... Args> static T* In ...
- 设计模式之单例模式(Singleton)
设计模式之单例模式(Singleton) 设计模式是前辈的一些经验总结之后的精髓,学习设计模式可以针对不同的问题给出更加优雅的解答 单例模式可分为俩种:懒汉模式和饿汉模式.俩种模式分别有不同的优势和缺 ...
- 每天一个设计模式-4 单例模式(Singleton)
每天一个设计模式-4 单例模式(Singleton) 1.实际生活的例子 有一天,你的自行车的某个螺丝钉松了,修车铺离你家比较远,而附近的五金店有卖扳手:因此,你决定去五金店买一个扳手,自己把螺丝钉固 ...
- 设计模式之单例模式——Singleton
设计模式之单例模式--Singleton 设计意图: 保证类仅有一个实例,并且可以供应用程序全局使用.为了保证这一点,就需要这个类自己创建自己的对象,并且对外有 ...
- 设计模式(4) -- 单例模式(Singleton)
设计模式(4) -- 单例模式(Singleton) 试想一个读取配置文件的需求,创建完读取类后通过New一个类的实例来读取配置文件的内容,在系统运行期间,系统中会存在很多个该类的实例对象,也就是说 ...
- 乐在其中设计模式(C#) - 单例模式(Singleton Pattern)
原文:乐在其中设计模式(C#) - 单例模式(Singleton Pattern) [索引页][源码下载] 乐在其中设计模式(C#) - 单例模式(Singleton Pattern) 作者:weba ...
随机推荐
- VC 编程ANSI环境下读写Unicode文件
没有注意到文件编码的不同会产生这么多的问题,在动手以前查询了很多资料,在本博客中收藏了不少先辈的成果,在这里一并表示致敬! 关于ANSI和Unicode编码的原理在这里也不说了,主要讲下如 ...
- Using CrunchBase API
Let us have fun with CrunchBase API. What can CrunchBase API give us? They said: https://developer.c ...
- Power BI官方视频(4) Power BI Desktop 2017年首次更新先睹为快
在过去的2016年,Power BI Desktop在功能上进行了很多改进和更新,产品迭代速度非常快,基本是每个月一个版本.过去的一年,我们期待的Power BI中国区服务已经可以在世纪互联购买和使用 ...
- C# 数据库连接测试以及备份
现在我们要做一个如图5.1的数据库连接配置,从界面上看有三个功能需要实现:从配置文件中读取数据库连接的相关属性.备份数据库.测试连接. 现在我们就一个一个开始讲解. 图5.1 1.从配置文件中读取数据 ...
- DLoopDetector回环检测算法
词袋模型是一种文本表征方法,它应用到计算机视觉领域就称之为BoF(bag of features),通过BoF可以把一张图片表示成一个向量.DBoW2是一个视觉词袋库,它提供了生成和使用词典的接口,但 ...
- [ios2]使用NSOperationQueue简化多线程开发和队列的优先级 【转】
多线程开发是一件需要特别精心的事情,即使是对有多年开发经验的工程师来说. 为了能让初级开发工程师也能使用多线程,同时还要简化复杂性.各种编程工具提供了各自的办法.对于iOS来说,建议在尽可能的情况下避 ...
- Ubuntu16.04 server下配置MySQL,并开启远程连接
背景 最近正在学nodejs,想到曾经有台云服务器,但是很久不用了,由于怕麻烦,一股脑的把云主机重装了个Ubuntu系统,于是配置MySQL成了配置服务中的一个环节(node用不用MySQL不管,主要 ...
- 设计模式(二)单例模式Singleton(创建型)
几乎所有面向对象的程序中,总有一些类的对象需要是唯一的,例如,通过数据库句柄到数据库的连接是独占的.您希望在应用程序中共享数据库句柄,因为在保持连接打开或关闭时,它是一种开销.再如大家最经常用的IM, ...
- 第一百三十四节,JavaScript,封装库--遮罩锁屏
JavaScript,封装库--遮罩锁屏 封装库新增1个方法 /** zhe_zhao_suo_ping()方法,将一个区块元素设置成遮罩锁屏区块 * 注意:一般需要在css文件将元素设置成隐藏 ** ...
- OpenVPN客户端证书合并到配置文件中
这里只讲OpenVPN客户端证书合并到配置文件中,避免文件太多,管理不便! 生成的客户端证书和配置文件,客户端需要的一共有5个文件:ca.crt.client.crt.client.key.ta.ke ...