单例模式(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; } }