C++,设计模式,【抽象工厂模式】

在这里插入图片描述


C++设计模式:用“抽象工厂模式”打造你的万能工厂


一、从早餐店说起:什么是抽象工厂?

每天早上,你走进一家早餐店,只需要说一句:“来份经典套餐”,就能得到一杯豆浆+两根油条。第二天你换家店说同样的话,可能得到的是咖啡+牛角包。这两家店就是不同的"抽象工厂",它们都能生产"早餐组合",但具体内容却完全不同。

抽象工厂模式的核心思想:提供一个接口,用于创建一系列相关或依赖的对象,而无需指定它们的具体类。


二、工厂模式的升级版:抽象工厂 vs 简单工厂

1. 简单工厂(小作坊)

// 只能生产单一产品
class 包子工厂 {
   
   
public:
    包子* 制作包子(口味 type) {
   
   
        switch(type) {
   
   
            case 鲜肉: return new 鲜肉包();
            case 豆沙: return new 豆沙包();
        }
    }
};

2. 抽象工厂(连锁集团)

// 能生产整套产品线
class 早餐工厂 {
   
   
public:
    virtual 饮品* 做饮品() = 0;
    virtual 主食* 做主食() = 0;
};

class 中式早餐厂 : public 早餐工厂 {
   
   
    饮品* 做饮品() override {
   
    return new 豆浆(); }
    主食* 做主食() override {
   
    return new 油条(); }
};

class 西式早餐厂 : public 早餐工厂 {
   
   
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

智驾

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值