// FactoryExample.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//
#include <iostream>
#include "Car.h"
#include "CarFactory.h"
#include "CarSimpleFactory.h"
int main()
{
std::unique_ptr<ICar> pCar;
std::unique_ptr<CCarSimpleFactory> factory(new CCarSimpleFactory());
//[1]
std::cout << "Car Factory mode1:\n";
pCar.reset(factory->create(eBMWCar)); //宝马
pCar->run();
pCar.reset(factory->create(eDAZHONGCar)); //大众
pCar->run();
pCar.reset(factory->create(eJILICar)); //吉利
pCar->run();
pCar.reset(factory->create(11)); //不生产这种车
if (pCar->isNull()) {
std::cout << "CCarSimpleFactory not product the 11 type car!!!\n";
}
pCar.reset(factory->create(ePORSCHECar)); //保时捷
pCar->run();
#if 0
//[2]
std::cout << "\nCar Factory mode2:\n";
pCar.reset(factory->createEx<ICar, CBmwCar>()); //宝马
pCar->run();
pCar.reset(factory->createEx<ICar, CDazhongCar>()); //大众
pCar->run();
pCar.reset(factory->createEx<ICar, CJiliCar>()); //吉利
pCar->run();
pCar.reset(factory->createEx<ICar, CPorscheCar>()); //保时捷
pCar->run();
pCar.reset(factory->createEx<ICar, CChangAnCar, int>(5)); //长安
pCar->run();
#endif
}
// 运行程序: Ctrl + F5 或调试 >“开始执行(不调试)”菜单
// 调试程序: F5 或调试 >“开始调试”菜单
// 入门使用技巧:
// 1. 使用解决方案资源管理器窗口添加/管理文件
// 2. 使用团队资源管理器窗口连接到源代码管理
// 3. 使用输出窗口查看生成输出和其他消息
// 4. 使用错误列表窗口查看错误
// 5. 转到“项目”>“添加新项”以创建新的代码文件,或转到“项目”>“添加现有项”以将现有代码文件添加到项目
// 6. 将来,若要再次打开此项目,请转到“文件”>“打开”>“项目”并选择 .sln 文件
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
C++设计模式例程,工厂模式例子,环境是VS2019打开即可运行 工厂模式也是平时我们编程用的比较多的一种行为设计模式,它提供了一种创建对象的最佳方式。工厂模式提供了一种创建对象的方式,而无需指定要创建的具体类。工厂模式属于创建型模式,它在创建对象时提供了一种封装机制,将实际创建对象的代码与使用代码分离。 作为一种创建类模式,在任何需要生成复杂对象的地方,都可以使用工厂方法模式。有一点需要注意的地方就是复杂对象适合使用工厂模式,而简单对象,特别是只需要通过 new 就可以完成创建的对象,无需使用工厂模式。如果使用工厂模式,就需要引入一个工厂类,会增加系统的复杂度。
资源推荐
资源详情
资源评论
收起资源包目录
FactoryExample.zip (8个子文件)
FactoryExample.sln 1KB
FactoryExample.cpp 2KB
CarFactory.h 944B
CarSimpleFactory.h 903B
Car.h 1KB
FactoryExample.vcxproj 7KB
FactoryExample.vcxproj.filters 1KB
FactoryExample.vcxproj.user 168B
共 8 条
- 1
资源评论
流星雨爱编程
- 粉丝: 2762
- 资源: 8
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功