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、付费专栏及课程。

余额充值