您的位置:首页 > 编程语言 > C语言/C++

单件模式

2016-02-19 22:05 387 查看
有一些对象我们只需要一个,比如线程池、缓存、对话框等等,如果制造出多个实例,就会导致许多问题产生。

单件模式利用一个静态变量来记录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++