1.将构造函数和析构函数进行私有化,防止外部构造和析构
2. 将拷贝构造和赋值构造进行私有化,防止外部拷贝构造和赋值构造
3.定义一个静态函数并在外部实现并返回 类的静态变量
class TreatWindowFactory: public IwidgetFactory<ITreatmentWindowController>
{
private:
TreatWindowFactory();
~TreatWindowFactory();
TreatWindowFactory(const TreatWindowFactory&);
TreatWindowFactory& operator=(const TreatWindowFactory&);
public:
static IWidgetFactory<ITreatmentWindowController>* getInstance();
}
IWidgetFactory<ITreatmentWindowController>* TreatmentWindowFactory::getInstance()
{
static TreatmentWindowFactory instance;
return &instance;
}