c++ 工厂模式,产品类继承多个基类
时间: 2024-11-17 08:12:04 浏览: 6
工厂模式是一种软件设计模式,它允许你在创建对象时隐藏其实现细节,只通过一个共同的接口或抽象类来操作。在C++中,当你有一个产品系列,每个产品都是基于多个基类的不同组合时,可以采用策略式或模板方法来实现工厂模式。
例如,假设你有"Vehicle"基类,有两个派生类"Car"和"Motorcycle",它们都继承自"Vehicle"。如果你需要创建这些车辆的不同实例,但不想暴露具体的构造细节,你可以创建一个`Factory`类,其中包含静态函数来返回对应类型的车辆:
```cpp
class Vehicle {};
class Car : public Vehicle {};
class Motorcycle : public Vehicle {};
// Factory 类
class VehicleFactory {
public:
static std::unique_ptr<Vehicle> createCar() { return std::make_unique<Car>(); }
static std::unique_ptr<Vehicle> createMotorcycle() { return std::make_unique<Motorcycle>(); }
};
// 使用工厂模式创建车辆
std::unique_ptr<Vehicle> car = VehicleFactory::createCar();
std::unique_ptr<Vehicle> motorcycle = VehicleFactory::createMotorcycle();
```
在这种模式下,客户端只需要关心他们想要创建的特定类型的产品,并不需要了解如何直接实例化那些复杂的子类。这提高了代码的灵活性和模块性。
阅读全文