Singleton
单体模式主要用于在纯面向对象编程中在内存中维持一个唯一的全局对象。
#include<QString> #include<QDebug> class Singleton { protected: Singleton(); public: static Singleton* GetInstance(); void Speak(); private: static Singleton* m_Instance; QString sentence; };
该程序是在Qt环境下编写,cpp文件内容如下:
#include "singleton.h" Singleton* Singleton::m_Instance = 0; Singleton::Singleton() { sentence = "I am phoenix!"; } Singleton* Singleton::GetInstance() { if(0 == m_Instance) m_Instance = new Singleton(); return m_Instance; } void Singleton::Speak() { qDebug()<<sentence; }
说明:如果我们在main函数中调用GetInstance返回一个指针的拷贝,每调用一次就会返回一个指针的值,但是这些指针指向同一个static对象,这就实现了在内存中只有一个实例对象存在。