我有四個類,讓我們調用S1,S2,S3和S4。這些課是單身人士;每個人都有一個getInstance和一個finalize方法 - 以及一個實例私有變量。在C++中創建一個SingletonMixin類
現在,爲了避免repeting的最終化和getInstance方法我試圖做一個SingletonMixin類,類似:
template<class T> class SingletonMixin
{
public:
static T* getInstance();
private:
static T* instance;
};
這裏的問題是:如何能夠例如單身clasess並保持其構造私有?
編輯
(澄清)
我的意思是,我怎麼能做到這一點:
template<class T> T* SingletonMixin<T>::instance = 0;
template<class T> T* SingletonMixin<T>::getInstance()
{
if (instance == 0)
{
instance = T();
}
return instance;
};
但私人牛逼結構T()
謝謝!
簡單的答案是:不要。儘可能避免單身人士是可怕的設計模式。 – Puppy 2010-08-15 15:07:42
四個單身課程?大多數人無法想到* one *適當使用單身人士。 – jalf 2010-08-15 20:22:33
@jalf:只是一個練習,我正在學習這門語言。 – Hugo 2010-08-16 23:52:26