#include "stdafx.h"
#include <iostream>
using namespace std;
class BMW
{
public:
virtual void SetCorlor(char * corlor) = 0;
virtual void SetEngine(char * corlor) = 0;
virtual void Drive() = 0;
};
class BMW523 : public BMW
{
public:
void SetCorlor(char * corlor)
{
cout << " 喷漆 " << corlor << "完成 "<< endl;
}
void SetEngine(char * engine)
{
cout << " 发动机 " << engine << "安装完成 " << endl;
}
void Drive()
{
cout << "BMW523 Driving " << endl;
}
};
class BMW320 : public BMW
{
public:
void SetCorlor(char * corlor)
{
cout << " 喷漆 " << corlor << "完成 " << endl;
}
void SetEngine(char * engine)
{
cout << " 发动机 " << engine << "安装完成 " << endl;
}
void Drive()
{
cout << "BMW320 Driving " << endl;
}
};
class Aircondition
{
public:
virtual void Install() = 0;
};
class Aircondition320 : public Aircondition
{
public:
void Install()
{
cout << "Aircondition320 Install " << endl;
}
};
class Aircondition523 : public Aircondition
{
public:
void Install()
{
cout << "Aircondition523 Install " << endl;
}
};
class FactoryBMW
{
public:
virtual BMW* CreateBMW() = 0;
virtual Aircondition* CreateAircondition() = 0;
};
class FactoryBMW320 :public FactoryBMW
{
public:
BMW* CreateBMW()
{
BMW* pBMW = new BMW320;
pBMW->SetCorlor("红色");
pBMW->SetEngine("宝马发动机");
return pBMW;
}
Aircondition320* CreateAircondition()
{
return new Aircondition320;
}
};
class FactoryBMW523 :public FactoryBMW
{
public:
BMW* CreateBMW()
{
BMW* pBMW = new BMW523;
pBMW->SetCorlor("黑色");
pBMW->SetEngine("高等宝马发动机");
return pBMW;
}
Aircondition *CreateAircondition()
{
return new Aircondition523;
}
};
int main()
{
FactoryBMW320 *pFactoryBMW320 = new FactoryBMW320();
BMW * pBMW320 = pFactoryBMW320->CreateBMW();
pBMW320->Drive();
FactoryBMW* pFactoryBMW523 = new FactoryBMW523;
BMW * pBMW523 = pFactoryBMW523->CreateBMW();
pBMW523->Drive();
return 0;
}
#include "stdafx.h"
#include <iostream>
using namespace std;
class Car
{
public:
void SetColor(char *color)
{
cout << " 喷漆 :"<< color << endl;
}
void SetEngine(char *engine)
{
cout << "发送机安装:"<< engine << endl;
}
void SetAirconddition(char *Airconddition)
{
cout << "空调安装: "<< Airconddition << endl;
}
void CarDrive()
{
cout << "Car moveing" << endl;
}
};
class Factory
{
public:
Car *CreateCar()
{
Car *pCar = new Car;
pCar->SetColor("红色");
pCar->SetEngine("法拉利");
pCar->SetAirconddition("格力");
pCar->CarDrive();
return pCar;
}
};
int main()
{
Factory * pfactory = new Factory;
pfactory->CreateCar();
return 0;
}
#include "stdafx.h"
#include <iostream>
using namespace std;
class Car
{
public:
void SetColor(char *color)
{
cout << " 喷漆 :"<< color << endl;
}
void SetEngine(char *engine)
{
cout << "发送机安装:"<< engine << endl;
}
void SetAirconddition(char *Airconddition)
{
cout << "空调安装: "<< Airconddition << endl;
}
void CarDrive()
{
cout << "Car moveing" << endl;
}
};
class Factory
{
public:
Car *CreateCar()
{
Car *pCar = new Car;
pCar->SetColor("红色");
pCar->SetEngine("法拉利");
pCar->SetAirconddition("格力");
return pCar;
}
};
int main()
{
Factory * pfactory = new Factory;
Car *car = pfactory->CreateCar();
car->CarDrive();
return 0;
}
#include "stdafx.h"
#include <iostream>
using namespace std;
class Car
{
public:
void SetColor(char *color)
{
cout << " 喷漆 :"<< color << endl;
}
void SetEngine(char *engine)
{
cout << "发送机安装:"<< engine << endl;
}
void SetAirconddition(char *Airconddition)
{
cout << "空调安装: "<< Airconddition << endl;
}
void CarDrive()
{
cout << "Car moveing" << endl;
}
};
class Factory
{
public:
virtual Car* CreateCar() = 0;
};
class AFactoryMethon : public Factory
{
public:
Car* CreateCar()
{
Car *pCar = new Car();
pCar->SetColor("白色");
pCar->SetEngine("宝马");
pCar->SetAirconddition("格力");
return pCar;
}
};
class BFactoryMethon : public Factory
{
public:
Car* CreateCar()
{
Car *pCar = new Car();
pCar->SetColor("黑色");
pCar->SetEngine("奔驰");
pCar->SetAirconddition("格力");
return pCar;
}
};
int main()
{
Factory *pBAO = new AFactoryMethon;
Car* pCarBao = pBAO->CreateCar();
pCarBao->CarDrive();
Factory *pBEN = new BFactoryMethon;
Car* pCarBen = pBEN->CreateCar();
pCarBen->CarDrive();
return 0;
}