Singleton
来源:互联网 发布:深圳奇点网络 编辑:程序博客网 时间:2024/05/01 19:53
这个应该是最简单的一个设计模式,记得当初在学校学习C++时看到这样一个类,当时还觉得这确实是个技巧,但是那会基本上没有实际用到,这次在项目中则到处可见,个人觉得Singleton用到的场合还比较多,基本上叫做**Mgr之类的都是Singleton,当然经验还不足不知道是不是有些地方有滥用,我们项目中用到的是一个#define:
#define SINGLE_INSTANCE(class_name) /
private: /
class_name(); /
class_name(const class_name&); /
class_name& operator(const class_name&);/
public: /
static class_name& instance() /
{static class_name _instance;return _instance;}
这样假如定义了一个类:
class A
{
//这样就是一个Singleton类了
SINGLE_INSTANCE(A)
};
模板形式的更爽:
template<class T> class Singleton {
Singleton(const Singleton&);
Singleton& operator=(const Singleton&);
protected:
Singleton() {}
virtual ~Singleton() {}
public:
static T& instance() {
static T theInstance;
return theInstance;
}
};
// A sample class to be made into a Singleton
class MyClass : public Singleton<MyClass> {
int x;
protected:
friend class Singleton<MyClass>;
MyClass() { x = 0; }
public:
void setValue(int n) { x = n; }
int getValue() const { return x; }
};
- Singleton
- Singleton
- singleton
- Singleton
- Singleton
- Singleton
- Singleton
- Singleton
- Singleton
- Singleton
- Singleton
- Singleton
- singleton
- Singleton
- Singleton
- Singleton
- Singleton
- Singleton
- 值得???
- 最近做了个手机开发资料站,不知道为什么会有浏览器兼容问题,累死了~~~~~~~~~~
- 败
- C#修改默认程序图标
- 内外兼修 用户从1到100万
- Singleton
- 软件工程PSP中对项目时间的估算心得
- 更喜欢原来的风格
- 2009-10-17
- QQ邮箱搜索器 邮箱地址批量搜索
- mysql备份与还原
- 一句话文章1
- Winform修改exe默认图标
- [转]覆写 javascript中的window.confirm 显示yes/no 按钮