简单工厂是由一个工厂对象决定创建出来哪一种产品类的实例。简单工厂的实质是由一个工厂类根据传入的参数,动态决定应该创建哪一类产品类(这些产品类继承自一个父类或者接口)的实例。
打个比方,有一个工厂,他能生产出A,B两种产品。当客户需要产品的时候,一定要告诉生产的是哪种产品,是A还是B。当新增加一种产品的时候,那么就要去修改工厂的类。
代码如下:
#include<iostream>
using namespace std;
class product{
public:
virtual void show(){}
};
class productA:public product{//继承
public:
void show(){
cout<<"我是产品A"<<endl;
}
};
class productB:public product{//继承
public:
void show(){
cout<<"我是产品B"<<endl;
}
};
class Factory{
public:
product *Create(int i){
switch(i){
case 1:return new productA;break;
case 2:return new productB;break;
default:break;
}
}
};
int main()
{
Factory *ft = new Factory();
ft->Create(1)->show();
ft->Create(2)->show();
return 0;
}
运行结果:
简单的工厂模式就是这样。