单列模式设计
1.单列(Singleton)模式是最简单的设计模式,它允许一个类有且仅有一个实例的方法。
#include<iostream>
using namespace std;
class Singleton{
static Singleton s;
int i;
Singleton(int x):i(x){}
Singleton&operator=(Singleton&);
Singleton(const Singleton&);
public:
static Singleton&instance(){return s;}
int setValue(int x){i=x;}
};
Singleton Singleton::s(47);
int main()
{
Singleton &s=Singleton::instance();
cout<<s.getValue()<<endl;
Singleton& s2=Singleton::instance();
s2.setValue(9);
cout<<s.getValue()<<endl;
}
创建单列模式的关键是防止客户程序员获得任何控制其对象的生存期的权利。为了做到这一点,声明所有的构造函数为私有,并且防止编译器隐式生成任何构造函数。