单件模式-Singleton
2012-04-12 13:18
183 查看
基于模版的Singleton模式
template<typename T> class SingleTemp { public: static T* GetInstance() { //static T* pInstance = new T(); 其实静态的局部变量,还能简化代码 if (NULL == m_pSingle) { m_pSingle = new T(); } return m_pSingle; } protected: SingleTemp() { cout<<"Call SingleTemp()"<<endl; } private: static T* m_pSingle; }; template<typename T> T* SingleTemp<T>::m_pSingle = NULL; class MySingle : public SingleTemp<MySingle> { template<typename T> friend class SingleTemp; /* 或者 friend class SingleTemp<MySingle>; */ private: MySingle() { cout<<"Call MySingle()"<<endl; } };
总结, 要想用继承,模版的方式,复用单件模式,其子类(你想他成为单件的类)的构造函数要为private, 并且还要添加对应模版的友元类.
相关文章推荐
- 单件模式(Singleton)
- 面向对象的设计模式系列之一:单件模式(Singleton)
- 设计模式之单件模式(Singleton)
- 设计模式学习笔记(二)——Singleton单件模式
- c#平台下singleton单件模式
- C#面向对象设计模式纵横谈2 Singleton单件创建型模式
- 设计模式学习笔记(二)——Singleton单件模式
- Singleton单件模式的思考(续)
- 设计模式(五):创建型模式—Singleton(单件)
- 设计模式学习笔记(二)——Singleton单件模式
- C#面向对象设计模式纵横谈(2):Singleton 单件(创建型模式)
- Singleton(单件)- 对象创建型模式
- Singleton 单件模式及其变体 Double-Checked Locking 双重检查锁模式
- 魔兽争霸之PHP设计模式-单件模式[Singleton]
- 设计模式--创建型-Singleton(单例单件)
- PHP设计模式之单件(Singleton)
- 设计模式之单件模式(Singleton)
- 单件模式 Singleton
- 学习笔记[1]——Singleton(单件)模式
- (创建型模式)Singleton 单件模式