1简介
工厂方法模式同样属于类的创建型模式又被称为多态工厂模式。
工厂方法模式的意义是定义一个创建产品对象的工厂接口,将实际创建工作推迟到子类当中。
核心工厂类不再负责产品的创建,这样核心类成为一个抽象工厂角色,仅负责具体工厂子类必须实现的接口,
这样进一步抽象化的好处是使得工厂方法模式可以使系统在不修改具体工厂角色的情况下引进新的产品。
2 举例:工厂生产CPU
class CPU
{
public:
virtual void getCPU() = 0;
};
class IBMCPU:public CPU
{
public:
void getCPU()
{
cout << "i am IBM CPU" << endl;
}
};
class DELLCPU :public CPU
{
public:
void getCPU()
{
cout << "i am dell CPU." << endl;
}
};
class Factory
{
public:
virtual CPU* getProduct() = 0;
};
class IBMCPUFactory :public Factory
{
public:
CPU* getProduct()
{
return new IBMCPU;
}
};
class DELLCPUFactory :public Factory
{
public:
CPU* getProduct()
{
return new DELLCPU;
}
};
int main()
{
Factory* factory = NULL;
factory = new IBMCPUFactory;
CPU * cpu = NULL;
cpu = factory->getProduct();
cpu->getCPU();
delete factory;
delete cpu;
return 1;
}