#include <iostream>
using namespace std;
// 抽象产品类
class Car {
public:
virtual void drive() = 0;
};
// 具体产品类:小轿车
class SedanCar : public Car {
public:
void drive() {
cout << "Driving a Sedan Car." << endl;
}
};
// 具体产品类:越野车
class SUVCar : public Car {
public:
void drive() {
cout << "Driving an SUV Car." << endl;
}
};
// 抽象工厂类
class CarFactory {
public:
virtual Car* createCar() = 0;
};
// 具体工厂类:生产小轿车
class SedanCarFactory : public CarFactory {
public:
Car* createCar() {
return new SedanCar();
}
};
// 具体工厂类:生产越野车
class SUVCarFactory : public CarFactory {
public:
Car* createCar() {
return new SUVCar();
}
};
int main() {
// 创建小轿车工厂
CarFactory* sedanFactory = new SedanCarFactory();
// 使用小轿车工厂创建小轿车
Car* sedanCar = sedanFactory->createCar();
sedanCar->drive();
// 创建越野车工厂
CarFactory* suvFactory = new SUVCarFactory();
// 使用越野车工厂创建越野车
Car* suvCar = suvFactory->createCar();
suvCar->drive();
// 释放资源
delete sedanFactory;
delete suvFactory;
delete sedanCar;
delete suvCar;
return 0;
}
c++工厂方法代码
最新推荐文章于 2024-09-10 00:01:10 发布