简单工厂是工厂模式的一个简例,可以让你更好地理解工厂模式,他的优点是接口统一,但是他违反开辟原则,这是它致命的缺点,因此,它存在的意义就是让你更好地理解工厂模式的过程。
#include<windows.h> //引用里面的时间睡眠Sleep()
#include<iostream>
using namespace std;
/*设有基类product,它下面有三个产品A、B、C*/
class Product{
public:
virtual void Do()=0;//它们共有一个Do()方法,因此设置成虚接口,派生类直接调用
};
class ProductA:public Product{
public:
void Do(){
cout<<" waiting..."<<endl;
Sleep(5000); //控制睡眠时间,单位为ms
cout<<"西红柿炒鸡蛋"<<endl;
}
};
class ProductB:public Product{
public:
void Do(){
cout<<" waiting..."<<endl;
Sleep(5000);
cout<<"椒盐玉米"<<endl;
}
};
class ProductC:public Product{
public:
void Do(){
cout<<" waiting..."<<endl;
Sleep(5000);
cout<<"鱼香肉丝"<<endl;
}
};
class Factory{
private:
Product *product; //工厂设置私有产品product
public:
Factory(int n){
switch(n){
case 1:
product = new ProductA();
break;
case 2:
product = new ProductB();
break;
case 3:
product = new ProductC();
break;
}
}
void send(){
product->Do();
}
~Factory(){ //用完要释放空间
delete product; }
};
int main(void)
{
int n;
printf("你想吃什么菜?\n");
printf("1.西红柿炒鸡蛋\n2.椒盐玉米\n3.鱼香肉丝\n选择你的序号:");
scanf("%d",&n);
Factory *factory = new Factory(n);
factory->send();
}