設計模式或許是面向對象設計方法學前進過程中的最新,最重要的一步。設計模式當今已成為面向對象程序設計的重要部分。
單件也許是最簡單的設計模式,它是允許一個類有且僅有一個實例的方法。創建一個單件模式的關鍵是防止客戶程序員獲得任何控制其對象生存期的權利。為了做到這一點,聲明所有的構造函數為私有,并且防止編譯器隱式生成任何構造函數。注意,拷貝構造函數和賦值操作符(這兩個故意沒有實現,,因為它們根本不會被調用)被聲明為私有,以便防止任何這類復制動作產生。這種方法并沒有限制只創建一個對象。這種技術也支持創建有限個對象的對象池。
下面的程序顯示在c++中如何實現一個單件模式
#include<iostream>
using namespace std;
class Singleton
{
static Singleton s;
int i;
Singleton(int x):i(x){}
Singleton & operator=(Singleton &); //disallowed
Singleton(const Singleton &);
public:
static Singleton & instance(){return s;}
int getValue(){return i;}
void 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;
}
參考:c++ 編程思想 2