小话设计模式二:单例模式
单例模式定义:
只有一个实例,单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。这个类称为单例类。
单例模式特点:
1、这个类只能有一个实例
2、这个类必须自行创建这个实例
3、这个类必须自行向整个系统提供这个实例
单例模式解析:
下面是单例模式的UML图:
下面是简单代码实现:
//单例模式 class Singleton { public: static Singleton* CreateInstance(); static void DestoryInstance(); ~Singleton(); private: Singleton(); Singleton(const Singleton &rhs); static Singleton *instance; }; Singleton *Singleton::instance = NULL; Singleton::Singleton() { cout<<"Create a Singleton class"<<endl; } Singleton::~Singleton() { cout<<"Destory a Singleton class"<<endl; } Singleton* Singleton::CreateInstance() { if (NULL == instance) { instance = new Singleton; } return instance; } void Singleton::DestoryInstance() { if (NULL != instance) { delete instance; instance = NULL; } } int _tmain(int argc, _TCHAR* argv[]) { Singleton *one = Singleton::CreateInstance(); Singleton *two = Singleton::CreateInstance(); Singleton::DestoryInstance(); return 0; }