设计模式5-SingleTon单身模式

 

/**********************************************************************************************************************************************\
* [说明]
* 通常情况下,用户可以对应用系统进行配置,并将配置信息保存在配置文件中,应用系统在启动时首先将配置文件加载到内存中,
* 这些内存配置信息应该有且仅有一份。
*  下面的代码应用了单身模式(Singleton)以保证Configure类只能有一个实例。这样,Configure类的使用者无法定义该类的多个实例,
* 否则会产生编译错误。
\**********************************************************************************************************************************************/

#include "stdio.h"
#include <assert.h>

class CConfigFile
{
private:
 CConfigFile(){}

public:
 static CConfigFile* Instance();
 void GetConfigData(int &data);
 void SetConfigData(int data);

private:
 static CConfigFile* _instance;
 int _data;
};


// 注意:静态变量的初始化格式
CConfigFile* CConfigFile::_instance = NULL;

void CConfigFile::SetConfigData(int data)
{
 _data = data;
}

void CConfigFile::GetConfigData(int &data)
{
 data = _data;
}

CConfigFile* CConfigFile::Instance()
{
 if(_instance == NULL)
 {
  _instance = new CConfigFile();
 
  // 加载配置文件并设置内存配置信息,此处省略
 }

 return _instance;
}


int main(int argc, char* argv[])
{
 CConfigFile *configFile = NULL;
 configFile = CConfigFile::Instance();

 configFile->SetConfigData(3);

 int tmp = 0;
 configFile->GetConfigData(tmp);

 // 获取配置信息后进行其它工作,此处省略

 assert(tmp == 3);

 return 0;
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值