DesignPatterns/c++/factory_method.cc
2025-07-10 22:26:33 +08:00

34 lines
674 B
C++

/**
* @name 工厂方法模式
* @brief: 将对象创建委托给子类
* @note 场景:框架需要扩展多种类型对象(如 UI 控件、游戏角色)
*/
class Product {
public:
virtual void use() = 0;
};
class ConcreteProductA : public Product {
void use() override { /* 产品A的功能 */ }
};
class Creator {
public:
virtual Product* createProduct() = 0;
};
class ConcreteCreatorA : public Creator {
Product* createProduct() override {
return new ConcreteProductA();
}
};
// 使用
int main()
{
Creator* creator = new ConcreteCreatorA();
Product* product = creator->createProduct();
product->use();
return 0;
}