简单工厂

来源:互联网 发布:php bindto 编辑:程序博客网 时间:2024/05/21 00:14

简单工厂:专门定义一个类来负责创建其他类的实例。通常根据自变量的不同返回不同类的实例。

class Product{public:virtual void Show()=0;};class ProductA:public Product{public:void Show(){cout<<"product A"<<endl;}};class ProductB:public Product{public:void Show(){cout<<"product B "<<endl;}};class Factory{public:Product *CreateProduct(string type);};Product * Factory::CreateProduct(string type){if(type == "ProductA"){return new ProductA();}else if(type == "ProductB"){return new ProductB();}elsereturn NULL;}int main(){Factory factory ;Product *pa=factory.CreateProduct("ProductA");pa->Show();return 0;}

缺点:工厂类集中了所有实例的常见逻辑。

如果要添加一个ProductC,添加一个新类,还必须在Factory中的判断条件中增加一条。


0 0
原创粉丝点击