【c++设计模式】工厂模式

工厂模式:工厂模式提供了一种创建对象的方式。首先,定义抽象的对象(产品)以及具体对象(产品)细节,其次,使用抽象工厂提供的公共借口来完成对象的创建。

UML:

代码案例:

复制代码
class Product
{
public:
    Product() {}
    virtual ~Product() {}
    virtual double GetResult() = 0;
    void setA(double a) {
        this->mNumberA = a;
    }
    void setB(double b) {
        this->mNumberB = b;
    }
protected:
    double mNumberA;
    double mNumberB;
};


// 加法运算类
class ProductA :public Product
{
public:
    ProductA() {}
    ~ProductA() {}
    virtual double GetResult()
    {
        return (mNumberA + mNumberB);
    }
};



class AbstractFactory
{
public:
    AbstractFactory() {}
    virtual ~AbstractFactory() {}
    virtual Product* CreateProduct() = 0; // 声明一个专门用来创建对象的公共接口,具体工厂类继承并重写
};


class FactoryA :public AbstractFactory
{
public:
    FactoryA() {}
    ~FactoryA() {}

    // 重写虚函数CreateProduct()
    virtual Product* CreateProduct()
    {
        return (new ProductA());
    }
};


int main() {
    AbstractFactory* operFactory = nullptr;
    Product* oper = nullptr;
    operFactory = new FactoryA();
    oper = operFactory->CreateProduct();
    oper->setA(2.5);
    oper->setB(5);
    cout <<oper->GetResult();
}
复制代码

 

posted @   一只雷史莱姆  阅读(32)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
点击右上角即可分享
微信分享提示