
文章目录
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 早餐工厂 {

最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



