我是靠谱客的博主 鲜艳小虾米,最近开发中收集的这篇文章主要介绍工厂模式(C++实现)1 工厂模式2 简单工厂模式实现加减乘除3 工厂模式实现加减乘除,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

1 工厂模式

工厂模式:定义一个用于创建对象的接口,让子类决定实例化哪一个类,工厂方法让一个类的实例化延迟到其子类
在这里插入图片描述

2 简单工厂模式实现加减乘除

       简单工厂模式:其最大优点在于工厂类包含了必要的逻辑判断,根据客户端的选择条件动态实例化相关的类,对于客户端来说,去除了与具体产品的依赖

简单工厂模式实现计算机的加减乘除:
在这里插入图片描述
简单工厂类的实现

class OperatorFactory{   
public:
    AbstractCalculator* creatOperate(string str){
        AbstractCalculator *oper = NULL;
        
        if(str == "+"){
            oper = new(ADDCalculator);
        }else if (str == "-"){
            oper= new(SUbCalculator);
        }else if (str == "*"){
            oper = new(MulCalculator);
        }else if (str == "/"){
            oper = new(DivCalculator);
        }else{
            cout << "false!!!!!" << endl;
        }
        return oper;
    }
};

客户端实现:

int main(){
    AbstractCalculator *oper;
    OperatorFactory factory;
    oper = factory.creatOperate("+");
    oper->m_Num1 = 1999;
    oper->m_Num2 = 7234.44;
    cout << oper->m_Num1 << " + " << oper->m_Num2 << " = " << oper->getResult() << endl;
    
    return 0;
}

3 工厂模式实现加减乘除

在这里插入图片描述
工厂类的实现:

创建一个工厂接口

class IOperatorFactory{
public:
    virtual AbstractCalculator* createOperate() = 0;
};

然后加减乘除各建一个具体工厂实现这个接口

class AddFactory: public IOperatorFactory{
public:
    AbstractCalculator* createOperate(){
        return new ADDCalculator;
    }
};
class SubFactory: public IOperatorFactory{
public:
    AbstractCalculator* createOperate(){
        return new SUbCalculator;
    }
};
class MulFactory: public IOperatorFactory{
public:
    AbstractCalculator* createOperate(){
        return new MulCalculator;
    }
};
class DivFactory: public IOperatorFactory{
public:
    AbstractCalculator* createOperate(){
        return new DivCalculator;
    }
};

客户端实现:

int main(){
    AbstractCalculator *oper;
    IOperatorFactory *factory = new AddFactory;
    oper = factory->createOperate();
    oper->m_Num1 = 1999;
    oper->m_Num2 = 7234.44;
    cout << oper->m_Num1 << " + " << oper->m_Num2 << " = " << oper->getResult() << endl;
    
    return 0;
}

       工厂模式把简单工厂的内部逻辑判断转移到了客户端进行,想要添加功能时,本来改的是工厂类,现在修改的是客户端
       工厂方法克服了简单工厂违背开放-封闭原则的缺点,又保持了封装对象创建过程的优点。
       两者都是集中封装了对象的创建,使得要更换对象时,不需要做大的改动就可以实现,降低了客户程序与产品对象的耦合

最后

以上就是鲜艳小虾米为你收集整理的工厂模式(C++实现)1 工厂模式2 简单工厂模式实现加减乘除3 工厂模式实现加减乘除的全部内容,希望文章能够帮你解决工厂模式(C++实现)1 工厂模式2 简单工厂模式实现加减乘除3 工厂模式实现加减乘除所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(30)

评论列表共有 0 条评论

立即
投稿
返回
顶部