我有四个类,让我们调用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