c++设计模式(一)工厂模式
#include <iostream>
using namespace std;
class Product{
public:
virtual ~Product() = 0{}
protected:
Product(){}
};
class ConcreteProduct:public Product{
public:
~ConcreteProduct(){}
ConcreteProduct(){ //3
cout<<"ConcreteProduct...."<<endl;
}
};
class Factory{
public:
virtual ~Factory() = 0{}
virtual Product* CreateProduct() = 0;
protected:
Factory(){}
};
class ConcreteFactory:public Factory{
public:
~ConcreteFactory(){}
ConcreteFactory(){ //1
cout<<"ConcreteFactory....."<<endl;
}
Product* CreateProduct(){ //2
return new ConcreteProduct();
}
};
int main (){
Factory* fac = new ConcreteFactory();
Product* p1 = fac->CreateProduct();
Product* p2 = fac->CreateProduct();
return 0;
}