单例模式
单例模式定义
单例模式(Singleton),保证一个类仅有一个实例,并提供一个访问它的全局访问点。
单例模式特点
① 通常我们可以定义一个全局变量使得一个对象被访问,但它不能防止你实例化多个对象。一个最好的办法就是,让类自身负责保存它的唯一实例。这个类可以保证没有其他实例可以被创建,并且它可以提供一个访问该实例的方法。
② 单例模式因为Singleton类封装它的唯一实例,这样它可以严格地控制客户怎样访问它以及何时访问它。简单地说就是对唯一实例的受控访问。
单例模式实例应用
单例模式实例应用类图

图 01 单例模式实例应用类图
这里只是列举了最简单的单例模式,复杂一些的需要考虑到多线程的问题。
单例模式实例应用代码
1 #include "iostream" 2 using namespace std; 3 4 class CSingleton 5 { 6 private: 7 static CSingleton* instance; 8 CSingleton() 9 { 10 11 } 12 13 public: 14 static CSingleton* GetInstance() 15 { 16 if(instance == NULL) 17 { 18 instance = new CSingleton(); 19 } 20 return instance; 21 } 22 }; 23 24 // 类的静态变量需要在外部初始化哦 25 CSingleton* CSingleton::instance = NULL; 26 void main() 27 { 28 CSingleton* s1 = CSingleton::GetInstance(); 29 CSingleton* s2 = CSingleton::GetInstance(); 30 31 if(s1 == s2) 32 { 33 cout << "两个对象是相同的实例" << endl; 34 } 35 delete s1; 36 s1 = NULL; 37 delete s2; 38 s2 = NULL; 39 }
2014-12-05 21:55:00
浙公网安备 33010602011771号