单例模式,很容易理解,就它一个。
比如网络请求服务类WebReq。它自己生成请求线程,并管理请求数据的返回,所以我们使用它进行网络请求时,不用每次都new一个,只需要使用一个实例就行了。WebReq实现的就是单例模式。
C++示例
Singleton.h
1 #pragma once 2 class CSingleton 3 { 4 public: 5 static CSingleton* GetInstance(); 6 ~CSingleton(void); 7 public: 8 void Operate(); 9 private: 10 CSingleton(); 11 private: 12 static CSingleton* _instance; 13 };
Singleton.cpp
1 #include "Singleton.h" 2 #include <iostream> 3 4 CSingleton* CSingleton::_instance = new CSingleton(); 5 6 CSingleton::CSingleton(void) 7 { 8 } 9 10 11 CSingleton::~CSingleton(void) 12 { 13 } 14 15 void CSingleton::Operate() 16 { 17 std::cout<<"hi"<<std::endl; 18 } 19 20 CSingleton* CSingleton::GetInstance() 21 { 22 return _instance; 23 }
main.cpp
1 #include "Singleton.h" 2 #include <iostream> 3 4 int main() 5 { 6 CSingleton* pSingleton = CSingleton::GetInstance(); 7 pSingleton->Operate(); 8 return 0; 9 }