设计模式之 简单工厂模式(C++ 模板实现)
来源:互联网 发布:js radio 取得 编辑:程序博客网 时间:2024/06/06 01:36
这篇文章在上一篇介绍简单工厂模式的实现基础之上,采用C++模板技术来克服上一篇中提到的缺点。
同样以汽车厂生产汽车为例进行说明。
代码如下:
#include <iostream>#include <string>using namespace std;class CCarBase{public:virtual void printName(){cout << "汽车厂商:" << m_name << endl;}virtual ~CCarBase(){}protected:CCarBase(){}CCarBase(const string& name):m_name(name){}string m_name;};class GMCar : public CCarBase{public:GMCar() :CCarBase("通用汽车公司"){}void printName(){cout << "GMCar" << endl;CCarBase::printName();}};class FordCar : public CCarBase{public:FordCar() :CCarBase("福特汽车公司"){}void printName(){cout << "FordCar" << endl;CCarBase::printName();}};// 使用模板解决简单工厂模式的缺陷// 第一种:返回任意一个类的实例(更加通用)class STCarFactory{public:template<class T>static T* create(){return new T();}};/*// 第二种:返回CCarBase的子类实例class STCarFactory{public:// T是CCarBase的子类template<class T>static CCarBase* create(){return new T();}};*/void testSTCarFactory(){CCarBase* pCar = NULL;pCar = STCarFactory::create<GMCar>();pCar->printName();delete pCar;pCar = STCarFactory::create<FordCar>();pCar->printName();delete pCar;pCar = NULL;}int main(void){testSTCarFactory();return 0;}
0 0
- 设计模式之 简单工厂模式(C++ 模板实现)
- C#--设计模式之简单工厂模式
- 设计模式之简单工厂,工厂方法模式(c++)
- 设计模式之简单工厂C++实现
- 设计模式 之简单工厂+ 工厂模式
- 设计模式之简单工厂模式(使用C++)
- C#--简单工厂设计模式
- 《大话设计模式》之 简单工厂模式 Delphi/C shap /JAVA 实现
- 《大话设计模式》之 简单工厂模式 Delphi/C shap /JAVA 实现
- C语言实现设计模式之简单工厂模式(无内存泄露)
- 大话设计模式之C++实现---简单工厂模式
- 设计模式之简单工厂模式:c++实现
- 设计模式之简单工厂模式,C++实现
- scala实现设计模式之简单工厂模式
- 设计模式之 简单工厂模式(C++实现)
- 设计模式之简单工厂模式(C++实现)
- 设计模式之工厂方法模式的简单实现
- 设计模式之抽象工厂模式的简单实现
- FZU 2147A-B Game
- 04自定义控制器
- 环境变量——关于PATH与CLASSPATH的区别
- 如何更改SQL Server 2008 登陆验证方式
- JVM垃圾回收之我见
- 设计模式之 简单工厂模式(C++ 模板实现)
- 服务启动初始化相关配置 如XML、properties、log等文件
- 单源最短路径Dijstra算法
- cas之自定义代码查询认证
- 网上——对于IOC的理解
- 阿里巴巴暑期实习面试经验
- java通过JDBC链接SQLServer2012
- 在Android Studio中自定义字体库报错:java.lang.RuntimeException: native typeface cannot be made
- MongoDB权限认证