您的位置:首页 > 其它

设计模式5-SingleTon单身模式

2011-12-18 23:26 218 查看
/**********************************************************************************************************************************************\

* [说明]

* 通常情况下,用户可以对应用系统进行配置,并将配置信息保存在配置文件中,应用系统在启动时首先将配置文件加载到内存中,

* 这些内存配置信息应该有且仅有一份。

*  下面的代码应用了单身模式(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;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: