c++怎么实现一个简单的工厂模式_c++工厂设计模式实现示例

工厂模式通过基类指针和多态实现对象创建与使用的分离。定义抽象基类Product,具体产品A和B继承并实现use方法;工厂函数createProduct根据类型返回对应产品实例,主函数中通过基类指针调用use,实现多态。新增产品只需扩展工厂逻辑,符合开闭原则。

c++怎么实现一个简单的工厂模式_c++工厂设计模式实现示例

工厂模式是一种创建型设计模式,适用于对象创建逻辑比较复杂,或者希望把对象的创建和使用分离的场景。在C++中,通过基类指针和多态机制,可以轻松实现一个简单的工厂模式。

1. 定义产品接口

首先定义一个抽象基类(接口),所有具体产品都继承自它。

class Product {public:    virtual ~Product() = default;    virtual void use() const = 0;};class ConcreteProductA : public Product {public:    void use() const override {        std::cout << "Using Product An";    }};class ConcreteProductB : public Product {public:    void use() const override {        std::cout << "Using Product Bn";    }};

2. 创建工厂类

工厂类提供一个静态方法,根据输入参数决定创建哪种产品对象。

class Factory {public:    enum class ProductType {        TYPE_A,        TYPE_B    };    static std::unique_ptr createProduct(ProductType type) {        switch (type) {            case ProductType::TYPE_A:                return std::make_unique();            case ProductType::TYPE_B:                return std::make_unique();            default:                return nullptr;        }    }};

3. 使用示例

客户端代码无需知道具体类名,只需调用工厂方法即可获得所需对象。

立即学习“C++免费学习笔记(深入)”;

int main() {    auto productA = Factory::createProduct(Factory::ProductType::TYPE_A);    auto productB = Factory::createProduct(Factory::ProductType::TYPE_B);    if (productA) productA->use(); // 输出: Using Product A    if (productB) productB->use(); // 输出: Using Product B    return 0;}

这个实现方式把对象创建集中到工厂中,新增产品时只需扩展工厂逻辑,不修改已有代码,符合开闭原则。基本上就这些,简单但实用。

以上就是c++++怎么实现一个简单的工厂模式_c++工厂设计模式实现示例的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1479857.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月19日 04:08:15
下一篇 2025年12月19日 04:08:27

相关推荐

发表回复

登录后才能评论
关注微信