设计模式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;
}
* [说明]
* 通常情况下,用户可以对应用系统进行配置,并将配置信息保存在配置文件中,应用系统在启动时首先将配置文件加载到内存中,
* 这些内存配置信息应该有且仅有一份。
* 下面的代码应用了单身模式(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;
}
相关文章推荐
- 创建型设计模式---JAVA Singleton模式(单身模式)
- 创建型设计模式---JAVA Singleton模式(单身模式)
- 设计模式之Singleton模式(单身模式,单态模式)
- 深入浅出单实例Singleton设计模式--陈皓
- 设计模式实例解析-创建型模式(Singleton、Abstract Factory、Builder)[转]
- 设计模式之单例(singleton)模式
- 设计一个线程安全的单例(Singleton)模式
- 深入Singleton设计模式-java
- 在Java中应用设计模式--Singleton
- 设计模式 Singleton 单例 懒汉,线程安全
- java设计模式之创建模式--singleton
- 设计模式-单例模式(Singleton)
- 设计模式----Singleton(单例)
- 设计模式实例(Lua)笔记之三(Singleton单例模式)
- 深入浅出单实例Singleton设计模式
- Java 常用的设计模式-单列模式Singleton
- 【设计模式 - 2】之单例模式(Singleton)
- 深入浅出单实例Singleton设计模式
- 设计模式之Singleton(单态)
- 设计模式学习笔记:Singleton(单件模式)