您的位置:首页 > 其它

一个单件模式的模板

2010-06-18 20:52 405 查看
#如果你不知道什么是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
建议大家还是不要滥用单件。这个模式是最容易被滥用的。一般情况下可以用做读配置等需要全局访问之用。
另外就是,多线程切记不要用单件。。除非你加锁,但为了用单件模式加锁,不觉得很傻么?
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: