设计模式之单例模式

来源:互联网 发布:js 物体 的宽和高 编辑:程序博客网 时间:2024/06/06 13:20

1、单例模式(Singleton),保证一个类仅有一个实例,并提供一个访问它的全局访问点。

通常我们可以让一个全局变量使得一个对象被访问,但它不能防止你实例化多个对象。一个最好的办法就是,让类自身负责保存它的唯一实例。这个类可以保证没有其他实例可以被创建,并且它可以提供一个访问该实例的方法。

UML图如下:



2、C++代码实现如下:

[cpp] view plaincopy
  
  1. #include <iostream>  
  2. using namespace std;  
  3.   
  4. /* Singleton类,定义一个GetInstance操作 
  5.     允许客户访问它的唯一实例  */  
  6. class Singleton  
  7. {  
  8. private:  
  9.     static Singleton * instance;  
  10. public:  
  11.     static Singleton * GetInstance() {  
  12.         if (instance == NULL) {  
  13.             instance = new Singleton();  
  14.         }  
  15.         return instance;  
  16.     }  
  17. };  
  18.   
  19. Singleton * Singleton::instance = NULL;  
  20.   
  21. int main()  
  22. {  
  23.     Singleton * p_s1 = Singleton::GetInstance();  
  24.     Singleton * p_s2 = Singleton::GetInstance();  
  25.     if (p_s1 == p_s2) {  
  26.         cout << "两个对象是相同的实例" << endl;  
  27.     }  
  28.     return 0;  
  29. }  

0 0
原创粉丝点击