本文主要是介绍设计模式--创建型-Singleton(单例单件),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
设计模式--创建型-Singleton(单例/单件)
1. 意图
保证一个类仅有一个实例,并提供一个访问它的全局访问点。
2. 结构图
3. 简述
通常需要满足以下两点:
3.1 要保证类只能实例话一次,最简单的方法是把构造(包括拷贝构造函数和赋值构造函数)全部设为private或protected。当然这也不是绝对的,比如OGRE的Singleton类就让客户可以通过new的方式创建一个实例。
3.2 提供一个public的static方法用以实例化该类或返回已经实例化的指针。
4. 实例代码
4.1 一种定义方法
// 单例类
class Singleton
{
protected:
static Singleton* _instance;
private:
Singleton() {}
~Singleton();
Singleton(const Singleton &);
Singleton& operator=(const Singleton &);
public:
static Singleton* getInstancePtr();
void doSomething() {}
};
Singleton* Singleton::_instance = 0;
Singleton* Singleton::getInstancePtr()
{
if (!_instance)
_instance = new Singleton;
return _instance;
}
4.2 客户程序
int main ()
{
Singleton::getInstancePtr()->doSomething();
}
这篇关于设计模式--创建型-Singleton(单例单件)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!