设计模式-抽象工厂-C++实现

抽象工厂:提供一个创建对象的接口,让创建的创建延迟到具体的工厂类中。

场景:
1.一个系统要独立于它的产品的创建、组合和表示时;
2.提供一个产品类库,只想显示他们的接口而不是实现时;
3.强调一系列相关的产品对象的设计以便于进行联合使用时。

#include <stdio.h>

//产品基类-汽车
class Car {
public:
	virtual void carInfor() = 0;
};

class BMWCar :public Car {
public:
	void carInfor() {
		printf("这是一辆宝马车!\n");
	}
};

class DaziCar :public Car {
public:
	void carInfor() {
		printf("这是一辆大众车!\n");
	}
};

//工厂基类-汽车工厂
class CarFactory {
public:
	virtual Car *createCar() {
		return nullptr;
	}
};

class BMWFactory :public CarFactory {
public:
	Car* createCar() {
		return new BMWCar;
	}
};

class DaziFactory :public CarFactory {
public:
	Car* createCar() {
		return new DaziCar;
	}
};

int main() {

	BMWFactory* bmwFactory = new BMWFactory;
	Car* bmw = bmwFactory->createCar();
	bmw->carInfor();

	DaziFactory* daziFactory = new DaziFactory;
	Car* dazi = daziFactory->createCar();
	dazi->carInfor();

	return 0;
}

运行结果:
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

wb175208

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

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

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

打赏作者

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

抵扣说明:

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

余额充值