#include<iostream>
using namespace std;
class car//抽象类
{
public:
virtual void construct() = 0;
};
class jinkouBMW:public car
{
public:
void construct()
{
cout<<"造一辆进口宝马汽车"<<endl;
}
};
class huachenBMW:public car
{
public:
void construct()
{
cout<<"造一辆华晨宝马汽车"<<endl;
}
};
class BENZ:public car
{
public:
void construct()
{
cout<<"造一辆进口奔驰汽车"<<endl;
}
};
class beijinBENZ:public car
{
public:
void construct()
{
cout<<"造一辆北京奔驰汽车"<<endl;
}
};
class factory //负责生产具体的产品
{
public:
virtual car * createBMW() = 0;
virtual car * createBENZ() = 0;
};
class jinkouf:public factory
{
public:
car * createBMW()
{
return new jinkouBMW;
}
car * createBENZ()
{
return new BENZ;
}
};
class guochanf:public factory
{
public:
car * createBMW()
{
return new huachenBMW;
}
car * createBENZ()
{
return new beijinBENZ;
}
};
void create(factory *f)
{
car *c;
c = f->createBENZ();
c->construct();
delete c;
c = f->createBMW();
c->construct();
delete c;
}
int main()
{
factory * f = new guochanf ;
create(f);
delete f;
f = new jinkouf;
create(f);
delete f;
return 0;
}
C++ 抽象工厂模式
最新推荐文章于 2024-06-19 15:56:33 发布