单例模式(Singleton Pattern)
目的
确保一个类只有一个实例,提供一个全局访问接口。
结构
- 单例: 定义一个使用户只能操作一个实例的类。
源码
template <class T>class singleton //: private T{protected:singleton();~singleton();protected:static T* p_ins;public:static T& instance();static T* ptr();static void destroy();};template <class T>inline singleton<T>::singleton(){p_ins = NULL;}template <class T>inline singleton<T>::~singleton(){}template <class T>T &singleton<T>::instance(){if ( NULL == p_ins ){p_ins = new T;}return *(p_ins);}template <class T>T* singleton<T>::ptr(){if ( NULL == p_ins ){p_ins = new T;}return (p_ins);}template <class T>void singleton<T>::destroy(){if (p_ins != null) {delete p_ins;p_ins = null;}}