设计模式入门1——简单工厂模式(AudiFactory)

来源:互联网 发布:gps里程统计算法 编辑:程序博客网 时间:2024/06/06 02:32

        为了打好基础,再来一个简单工厂模式的例子,以奥迪车为例。


/*******************************************************///名称:简单工厂模式(AudiFactory)//时间:2014年4月4日12:24:17//作者:Lynch/*******************************************************/#pragma once#include<iostream>#include"AudiFactory.h"using namespace std;int main(){string carName;cout<<"Please input the type of an Audi car that you need!such as,A4."<<endl;cin>>carName;//输入奥迪车的型号(工厂里边必须有该型号,如A4)AudiFactory *audi=new AudiFactory();Audi *a=audi->getCar(carName);cout<<a->getResult()<<endl;return 0;}

#pragma once#include<string>using namespace std;class Audi{public:virtual string getResult()=0;};

#pragma once#include "Audi.h"#include<string>using namespace std;class AudiA4 :public Audi{public:virtual string getResult(){return "Audi A4 is coming!";}};

#pragma once#include "Audi.h"#include<string>using namespace std;class AudiA6 :public Audi{public:virtual string getResult(){return "Audi A6 is coming!";}};

#pragma once#include<iostream>#include<string>#include"Audi.h"#include"AudiA4.h"#include"AudiA6.h"using namespace std;class AudiFactory{public:Audi *getCar(string name){Audi *audi=NULL;if(name=="A4"){audi=new AudiA4();}else if(name=="A6"){audi=new AudiA6();}else{cout<<"Cannot create this type of Audi!"<<endl;exit(0);}return audi;}};

代码布局图:


运行效果图:


0 0