设计模式之——简单工厂模式

在C++语言中,简单工厂模式可以通过以下方式来实现:

首先,定义一个产品的基类或接口,所有具体产品类都应该实现这个基类或接口。

果需要更改加法算法,只需要更改 Add 类就可以。如果要增加其他运算,比如平方根、正弦、自然对数等,只要增加相应的运算子类和修改运算类工厂(在 switch 中增加分支)即可

复制代码
#include<iostream>
using namespace std;


enum ClassType
{
    ClassA,
    ClassB,
    ClassC,
    ClassD,
};
class Base
{
public: 
    virtual void whomi() = 0;
};

class A:public Base
{
public:
 // 具体产品A的操作实现
    void whomi()
    {
        cout << " A" << endl;
    }
};

class B:public Base
{
public:
 // 具体产品B的操作实现
    void whomi()
    {
        cout << " B" << endl;
    }
};
class C:public Base
{
public:
    void whomi()
    {
        cout << " C" << endl;
    }
};
class D:public Base
{
public:
    void whomi()
    {
        cout << " D" << endl;
    }
};
//工厂的体现
Base *create_class(const ClassType& type)
{
    switch(type)
    {
        case ClassA:
            return new A();
        case ClassB:
            return new B();
        case ClassC:
            return new C();
        case ClassD:
            return new D();
        default:
            return NULL;
    }
}
int main()
{
    Base *base=create_class(ClassB);
    base->whomi();
    delete base;
    return 0;
}
相关推荐
BestOrNothing_20159 分钟前
一篇搞懂 C++ 重载:函数重载 + 运算符重载,从入门到会用(含 ++、<<、== 实战)
c++·函数重载·运算符重载·operator·前置后置++·重载与重写
艾斯比的日常16 分钟前
Java 三色标记算法:并发垃圾回收的核心技术解析
java·开发语言·算法
2501_9411444226 分钟前
Python + C++ 异构微服务设计与优化
c++·python·微服务
CoovallyAIHub27 分钟前
抛弃LLM!MIT用纯视觉方法破解ARC难题,性能接近人类水平
深度学习·算法·计算机视觉
程序猿编码31 分钟前
PRINCE算法的密码生成器:原理与设计思路(C/C++代码实现)
c语言·网络·c++·算法·安全·prince
高洁0143 分钟前
具身智能-视觉语言导航(VLN)
深度学习·算法·aigc·transformer·知识图谱
Croa-vo1 小时前
TikTok 数据工程师三轮 VO 超详细面经:技术深挖 + 建模推导 + 压力测试全记录
javascript·数据结构·经验分享·算法·面试
蘑菇小白1 小时前
时间复杂度
数据结构·算法
8***29311 小时前
能懂!基于Springboot的用户增删查改(三层设计模式)
spring boot·后端·设计模式
czlczl200209251 小时前
算法:组合问题
算法·leetcode·职场和发展