抽象工厂
工厂模式:统一了接口,但是违背了开闭原则(开放扩展,关闭修改)
#include<iostream>
using namespace std;
class product{
public:
virtual void Do(){
cout << "product Do\n";
}
};
class productA : public product{
public :
void Do(){
cout << "productA\n";
}
};
class productB : public product{
public :
void Do(){
cout << "productB\n";
}
};
class productC : public product{
public :
void Do(){
cout << "productC\n";
}
};
class Factory{
private :
product * pdt;
public :
Factory(product * pdt){
this->pdt = pdt;
}
~ Factory(){
}
void MakeProduct(){
pdt->Do();
}
};
int main(void){
Factory * f1 = new Factory(new productB());
f1->MakeProduct();
Factory * f2 = new Factory(new productA());
f2->MakeProduct();
return 0;
}