工厂方法

来源:互联网 发布:淘宝怎么改价钱 编辑:程序博客网 时间:2024/06/05 12:45

工厂方法:父类负责定义创建对象的公共接口,而之类负责生产具体的对象。将类的实例化操作延迟到之类中完成,即由子类决定实例化哪个类。

class Product{public:virtual void Show()=0;};class ProductA:public Product{public:void Show(){cout<<"ProductA"<<endl;}};class ProductB:public Product{public:void Show(){cout<<"ProductB"<<endl;}};class Factory{public:virtual Product *CreateProduct()=0;};class Factory1:public Factory{public:Product *CreateProduct(){return new ProductA();}};class Factory2:public Factory{public:Product *CreateProduct(){return new ProductB();}};int main(){Factory *pF=new Factory1();Product *pA=pF->CreateProduct();pA->Show();return 0;}

工厂方法把简单工厂的内部逻辑判断移到客户端代码来进行(new Factory1())。

1.一个抽象产品类,可派生出多个具体的产品。抽象产品product,派生出productA,productB

2.一个抽象工厂类,可派生出多个具体的工厂类。抽象工厂Factory,派生出Factory1,Factory2

3.每个具体工厂类只能创建一个具体产品类的实例。具体工厂类Factory1只能产生productA,具体工厂类Factory2只能产生productB

0 0
原创粉丝点击