单件模式
2016-02-19 22:05
387 查看
有一些对象我们只需要一个,比如线程池、缓存、对话框等等,如果制造出多个实例,就会导致许多问题产生。
单件模式利用一个静态变量来记录Singleton类的唯一实例;把构造器声明为私有的,只有自Singleton类内部才可以调用构造器;用getInstance方法实例化对象,并返回这个实例。单件模式确保只有一个实例,并提供一个全局访问点。
单件模式利用一个静态变量来记录Singleton类的唯一实例;把构造器声明为私有的,只有自Singleton类内部才可以调用构造器;用getInstance方法实例化对象,并返回这个实例。单件模式确保只有一个实例,并提供一个全局访问点。
#ifndef __SINGLETON_H #define __SINGLETON_H #include<iostream> using namespace std; class Singleton { private: static Singleton *uniqueInstance; int num; private: Singleton(){} public: static Singleton* getInstance() { if (uniqueInstance == NULL) uniqueInstance = new Singleton(); return uniqueInstance; } void setNum(int i) { num = i; } int getNum() { return num; } }; Singleton* Singleton::uniqueInstance = NULL; #endif
#include"Sigleton.h" int main() { Singleton *singleton = Singleton::getInstance(); singleton->setNum(10); cout << singleton->getNum() << endl; Singleton *singleton2 = Singleton::getInstance(); cout << singleton2->getNum() << endl; }
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- PropertyChangeListener简单理解
- 关于指针的一些事情
- 什么是设计模式
- 设计模式之创建型模式 - 特别的变量问题
- 七、设计模式——装饰模式
- 设计模式总结
- 设计模式之创建型模式
- 浅谈设计模式的学习
- c++ primer 第五版 笔记前言
- share_ptr的几个注意点
- Lua中调用C++函数示例
- Lua教程(一):在C++中嵌入Lua脚本
- Lua教程(二):C++和Lua相互传递数据示例
- C#编程中使用设计模式中的原型模式的实例讲解
- 使用设计模式中的工厂方法模式进行C#编程的示例讲解
- 实例解析C#设计模式编程中简单工厂模式的使用
- 深入解析C#设计模式编程中对建造者模式的运用
- C++联合体转换成C#结构的实现方法
- C++高级程序员成长之路