设计模式:singleton模式
目的:限制类的实例个数只能是一个
例子:
#define AGT_DECLARE_SINGLETON(ClassName) \
public: \
static ClassName *Instance(); \
private: \
static ClassName *m_pInstance; \ #define AGT_DEFINE_SINGLETON(ClassName) \
ClassName *ClassName::m_pInstance = NULL; \
ClassName *ClassName::Instance() \
{ \
if (NULL == m_pInstance) \
{ \
m_pInstance = new ClassName; \
} \
return m_pInstance; \
}
class Manager
{
private:
Manager() {} public:
void show()
{
cout << "Success" << endl;
} public:
AGT_DECLARE_SINGLETON(Manager) //单例模式声明
}; AGT_DEFINE_SINGLETON(Manager); //函数实现
int main()
{
Manager* manager = Manager::Instance();
manager->show(); Manager* manager1 = Manager::Instance();
Manager* manager2 = Manager::Instance();
if(manager1 == manager2)
{
cout << "manager1 = manager2" << endl;
}
else
{
cout << "manager1 != manager2" << endl;
} return 0;
}
设计模式:singleton模式的更多相关文章
- 1.设计模式 - Singleton模式(单件模式)
Singleton是一种创建型模式,指某个类采用Singleton模式,则在这个类被创建后,只可能产生一个实例供外部访问,并且提供一个全局的访问点,一般用于Activity的控制层全局对象和Singl ...
- c++11 改进设计模式 Singleton模式
关于学习 <深入应用c++11>的代码笔记: c++11之前是这么实现的 template<typename T> class Singleton{ public: stati ...
- 【设计模式】Singleton模式C++实现
Singleton是设计模式中比较简单的一个.园中的朋友们应该都很熟悉了.前段时间参加xxx外企的面试,和面试官讨论C++的时候正好写了一个.当时由于在有些地方考虑不太周全,代码出现了一些疏漏.不过最 ...
- 单例设计模式Singleton之懒加载模式(懒汉模式)【原】
单例设计模式Singleton之懒加载模式(懒汉模式) SingletonLazy.java类 package kingtool; import kingtool.http.IPTool; publi ...
- Java设计模式(2)单态模式(Singleton模式)
定义:Singleton模式主要作用是保证在Java应用程序中,一个类Class只有一个实例存在. 在很多操作中,比如建立目录 数据库连接都需要这样的单线程操作. 还有,singleton能够被状态化 ...
- 设计模式(五)Singleton模式
Singleton模式就是确保只生成一个实例的模式.这里有两个意思,即想确保任何情况下都绝对只有一个实例和想在程序上表现出“只存在一个实例”. 下面通过一个实例来说明这种设计模式. package B ...
- 2)Javascript设计模式:Singleton模式
Singleton模式 var User = (function() { var instance; function _User(){} _User.prototype.say = function ...
- 设计模式之Singleton模式和Strategy模式是什么
Singleton模式 单例模式,也交单子模式,有时候系统只需要拥有一个全局对象. 这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建.这个类提供了一种访问其唯一的对象的方 ...
- 设计模式之Singleton模式
当程序运行时,有时会希望在程序中,只能存在一个实例,为了达到目的,所以设计了Singleton模式,即单例模式. 单例模式的特征: 想确保任何情况下只存在一个实例 想在程序上表现出只存在一个实例 示例 ...
- 设计模式 - 单件模式(singleton pattern) 具体解释
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/u012515223/article/details/28595349 单件模式(singleton ...
随机推荐
- 在运行时生成C# .NET类
本文译自:Generating C# .NET Classes at Runtime 作者:WedPort 在我的C#职业生涯中,有几次我不得不在运行时生成新的类型.希望把它写下来能帮助有相同应 ...
- 虹软人脸识别——官方 Qt Demo 移植到 Linux
一.前言 最近需要在 Linux 平台下开发一个人脸识别相关的应用,用到了虹软的人脸识别 SDK.之前在 Windows 平台用过,感觉不错,SDK 里面还带了 Demo 可以快速看到效果.打开 Li ...
- CentOS 7 Zookeeper 和 Kafka 集群搭建
环境 CentOS 7.4 Zookeeper-3.6.1 Kafka_2.13-2.4.1 Kafka-manager-2.0.0.2 本次安装的软件全部在 /home/javateam 目录下. ...
- python R语言 入门常见指令
环境是windows R语言安装包 install.packages("magrittr")
- ftp的passive模式
ftp的passive模式 今天在一台测试服务器上搭建ftp,折腾了许久. 主要是不了解ftp的passive模式和port模式的区别.这里记录一下. 和passive模式对应的叫做port模式,也叫 ...
- 如何使用PL/SQL工具批量导出表、存储过程、序列
PLSQL作为Oracle数据库进行操作常用工具,可以很方便的对表以及数据进行处理.工作中如果遇到数据库转移,需要将老数据库中的建表.建序列和存储过程语句导出,然后导入到新的数据库中这样序列号会自动, ...
- sql server 分组查询结合日期模糊查询
分组查询: https://www.cnblogs.com/netserver/p/4518995.html 日期格式化格式: http://blog.csdn.net/qq_16769857/art ...
- python编码--解码
在py3中只有两种数据类型:str bytes str: 存unicode(万国码)编码--全球通用的 bytes:存的是16进制的 1.str s='ehllo 丽庆' --->它存在内 ...
- C++ MFC 文件操作(新建,删除,剪切,复制,读数据,写数据,重命名)
源文件:http://pan.baidu.com/s/1ve0hV 这是运行mfc缺失的dll动态链接库:http://pan.baidu.com/s/17pGlT 哈哈,我也是初接触C++,基础的什 ...
- grunt之easy demo
首先安装grunt-cli cnpm install -g grunt-cli 接下来创建package.json,内容如下 { "name": "demo ...