现在的位置: 首页 > 综合 > 正文

设计模式: Singleton 模式

2013年02月05日 ⁄ 综合 ⁄ 共 1121字 ⁄ 字号 评论关闭
文章目录

问题

 个人认为 Singleton 模式是设计模式中最为简单、最为常见、最容易实现,也是最应该熟悉和掌握的模式。且不说公司企业在招聘的时候为了考察员工对设计的了解和把握,考的最多的就是 Singleton 模式。
 Singleton 模式解决问题十分常见,我们怎样去创建一个唯一的变量(对象)?在基于对象的设计中我们可以通过创建一个全局变量(对象)来实现,在面向对象和面向过程结合的设计范式(如 C++中)中,我们也还是可以通过一个全局变量实现这一点。但是当我们遇到了纯粹的面向对象范式中,这一点可能就只能是通过 Singleton 模式来实现了,可能这也正是很多公司在招聘 Java 开发人员时候经常考察 Singleton 模式的缘故吧。 Singleton 模式在开发中非常有用,具体使用在讨论给出。

模式选择

Singleton 模式典型的结构图为:
在 Singleton 模式的结构图中可以看到,我们通过维护一个 static 的成员变量来记录这个唯一的对象实例。通过提供一个 staitc 的接口instance 来获得这个唯一的实例。

实现

//Singleton.h 
#ifndef _SINGLETON_H_ 
#define _SINGLETON_H_ 
#include <iostream> 
using namespace std; 
class Singleton

public: 
static Singleton* Instance(); 
protected: 
Singleton(); 
private: 
static Singleton* _instance; 
}; 
#endif //~_SINGLETON_H_
 
 
//Singleton.cpp
#include "Singleton.h" 
#include <iostream> 
using namespace std; 
Singleton* Singleton::_instance = 0
Singleton::Singleton() 

cout<<"Singleton...."<<endl; 

Singleton* Singleton::Instance()

if (_instance == 0

_instance = new Singleton(); 

return _instance; 
}
 
 
//main.cpp 
#include "Singleton.h" 
#include <iostream> 
using namespace std; 
int main()

Singleton* pSingleton = Singleton::Instance(); 
return 0;
}
 
 
Singleton....
请按任意键继续. . .

抱歉!评论已关闭.