2.简单工厂模式

来源:互联网 发布:卫星影像数据 编辑:程序博客网 时间:2024/06/05 09:14

代码实现:

#include<iostream>#include<string>#include<assert.h>using namespace std;class Car{public:virtual ~Car(){}virtual void PrintName() {cout << "汽车生产厂商:" << name << endl;}protected:Car(){}Car(const string &name):name(name){}private:string name;};class GMCar:public Car{public:GMCar():Car("通用汽车公司"){}void PrintName(){cout << "GMCar Test\n";Car::PrintName();}};class FordCar:public Car{public:FordCar():Car("福特汽车公司"){}void PrintName(){cout << "FordCar Test\n";Car::PrintName();}};class CarFactory{public:static Car* CreatCar(const string &name){Car * car = NULL;if("GM" == name)car = new GMCar();else if("Ford" == name)car = new FordCar();elseassert(false);return car;}};int main(){Car *car = CarFactory::CreatCar("GM");car->PrintName();delete car;car = CarFactory::CreatCar("Ford");car->PrintName();delete car;return 0;}


0 0