工厂模式之简单工厂

简单工厂是工厂模式的一个简例,可以让你更好地理解工厂模式,他的优点是接口统一,但是他违反开辟原则,这是它致命的缺点,因此,它存在的意义就是让你更好地理解工厂模式的过程。

#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();
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值