一个单件模式的模板
来源:互联网 发布:软件需求可行性分析 编辑:程序博客网 时间:2024/05/22 03:44
#如果你不知道什么是Singleton那就可以不用往下看了.先搜搜一下Singleton再说,呵呵,免得浪费您的时间.
#如果你是模式爱好者,欢迎提出意见和改进方案.
#从一个工程中摘出来的,做了一些小修改。
#ifndef _XXX_SINGLETON_H_
#define _XXX_SINGLETON_H_
#ifndef NULL
#define NULL 0
#endif
template<class T>
class Singleton
{
public:
static T *instance()
{
if (singleton_ == NULL)
{
singleton_ = new Singleton;
}
return &singleton_->instance_;
}
protected:
Singleton();
T instance_;
static Singleton<T> *singleton_;
};
template<class T>
Singleton<T> *Singleton<T>::singleton_ = NULL;
template<class T>
Singleton<T>::Singleton()
{
}
#endif
#如果你是模式爱好者,欢迎提出意见和改进方案.
#从一个工程中摘出来的,做了一些小修改。
#ifndef _XXX_SINGLETON_H_
#define _XXX_SINGLETON_H_
#ifndef NULL
#define NULL 0
#endif
template<class T>
class Singleton
{
public:
static T *instance()
{
if (singleton_ == NULL)
{
singleton_ = new Singleton;
}
return &singleton_->instance_;
}
protected:
Singleton();
T instance_;
static Singleton<T> *singleton_;
};
template<class T>
Singleton<T> *Singleton<T>::singleton_ = NULL;
template<class T>
Singleton<T>::Singleton()
{
}
#endif
建议大家还是不要滥用单件。这个模式是最容易被滥用的。一般情况下可以用做读配置等需要全局访问之用。
另外就是,多线程切记不要用单件。。除非你加锁,但为了用单件模式加锁,不觉得很傻么?
- 一个单件模式的模板
- 单件模式的C++模板实现
- 多线程安全的单件模式,模板基类的单件实现
- C++单件模式:可继承的模板类
- C++ 模板实现 单件设计模式
- 单件模式带来的一个小麻烦
- 单件模式的疑惑
- php5的单件模式
- C++的单件模式
- 【单件模式】的优点
- C++模板写的一个单例设计模式类
- 使用单件注册表的单件模式例子
- 单件模板
- 自己理解的单件模式
- 单件模式的两个简单实例
- 单件模式的C++标准实现
- C#下的单件模式
- 游戏里的单件模式实现
- 初次尝试csdn博客
- C#里面地非安全编制程序
- 我的子blog: http://blog.csdn.net/BBsync
- Ubuntu 10.04 安装显卡后 调整开机分辨率
- 20.13 计算一个整数的二进制表示中1的个数
- 一个单件模式的模板
- 我的积分没了
- 关于Java的对象的创建和回收机制的小结
- killzone3要进一步成为water标杆?
- 取当前行
- 视频矩阵
- ASP.NET] Session 详解
- DVR概念
- I Swear (我发誓)