简单工厂模式(c++)


#include <QDebug>
 enum ChooseMenu
{
    sichuan,
    anhui,
};


class CookBook{//菜谱
public:
    virtual void cook_Paigu()=0;//炖排骨
    virtual ~CookBook(){}
};

class SicBook:public CookBook{ //川菜谱继承于菜谱
public:
    void cook_Paigu(){
        qDebug()<<"四川红烧排骨";
    }
};
class AnhuiBook:public CookBook{ //安徽菜谱继承于菜谱
public:
    void cook_Paigu(){
        qDebug()<<"安徽炖排骨";
    }
};
class Kitchen{ //厨房
public:
    CookBook* Create_paigu(ChooseMenu type)
    {
        switch (type) //做哪个菜
        {
        case sichuan:
            return new SicBook();

        case  anhui:
            return new AnhuiBook();
        default:
            return NULL;
        }
    }
};

void main()

{

     Kitchen* m_Kitchen = new  Kitchen();//创建厨房
    CookBook* sic = m_Kitchen->Create_paigu(sichuan);//从厨房创建川菜排骨对象
    sic->cook_Paigu();

    CookBook* m_anhui= m_Kitchen->Create_paigu(anhui);//从厨房创建安徽菜排骨对象
    m_anhui->cook_Paigu();

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值