设计模式中的单例模式&c++
来源:互联网 发布:vb简单程序代码 编辑:程序博客网 时间:2024/05/04 02:56
首先科普下单例模式的概念。
单例模式,本质上就是保证某个类实例在程序生存周期有且只有一个实例。
优点嘛,可以方便各个模块访问,被访问但不会一直创建new新的实例,始终只有这一个,可以节省资源。
最经典的用例便是用在日志记录模块,工程中可能很多地方都会进行日志的记录,每处记录如果都要创建新的日志类实例,好像太频繁了,很浪费资源的。这时候,单例类可以保证只有一个类对象,而不会一直new新的出来。直接访问就可以了。
下面我们会提供一个c++单例模板,其中核心便是使用了模板跟一个静态对象来保证其生存周期一直存在,供程序使用
template<typename T>class CSingleton{public:static T& GetInstance() { static T me; return me; }};
.h
#ifndef LOGGER_H#define LOGGER_H#include "singleton.h"class Logger:public CSingleton<Logger>{public: Logger(); void print();private: int m_count;};#endif // LOGGER_H.cpp
#include "logger.h"#include <iostream>Logger::Logger(){ m_count=0;}void Logger::print(){ m_count++; std::cout<<"Logger is exist! value is :"<<m_count<<std::endl;}
#include "logger.h"
using namespace std;
int main()
{
cout << "Hello World!" << endl;
new Logger();
for(int i=0;i<5;i++)
Logger::GetInstance().print();
return 0;
}
Done!
0 0
- Objective-c中的单例设计模式
- Objective-C中的设计模式之单例模式
- 设计模式中的单例设计模式
- JAVA设计模式中的单例模式
- Spring中的设计模式-单例模式
- webkit 中的设计模式--单例模式
- 游戏中的设计模式:单例模式
- java 中的设计模式--单例模式
- spring中的设计模式-单例模式
- 设计模式中的单例模式
- Android中的设计模式-单例模式
- 设计模式_C++中的单例模式
- OC中的设计模式-单例模式
- 设计模式中的单例模式&c++
- 设计模式中的单例模式
- java中的设计模式-单例模式
- 设计模式---unity中的单例模式
- (C#)设计模式 之 单例模式
- Android多元的设计模式
- Python 练习实例24
- ARC下OC对象和CF对象之间的桥接(bridge)
- Java中关于异常的一些问题(三)
- rman备份脚本
- 设计模式中的单例模式&c++
- linux基础学习之 automake
- HDFS写文件过程分析
- 在category和protocol中如何实现@property
- iOS全局定义NavigationController样式
- 《iOS Human Interface Guidelines》——Launch Files
- CSS完美兼容IE6/IE7/IE8/IE9/IE10的通用方法
- c++11特性里的多线程thread的用法
- listView的属性 Android:cacheColorHint="#00000000"