JS中使用简单工厂模式实现简单计算器

JS中的简单工厂模式

一: 简单工厂模式图解

在这里插入图片描述

二:什么是工厂模式

  1. 工厂模式属于创建型设计模式,目的就是不会对上端展示创建对象的细节,通过一个共同的通道来指向新创建的对象

  2. 使用场景: 再不同条件下创建不同的实例进行使用

  3. 解决思路: 子类实现工厂的接口,返回的也是一个抽象的产品

三:代码实现

3.1:加法类

class CalculationAdd{
    leftNumber = 0;
    rightNumber = 0;
    getResul()
    {
        return this.leftNumber + this.rightNumber;
    }
}

3.2:减法类

class CalculationSub{
    leftNumber = 0;
    rightNumber = 0;
    getResul()
    {
        return this.leftNumber - this.rightNumber;
    }
}

3.3:乘法类

class CalculationMu{
    leftNumber = 0;
    rightNumber = 0;
    getResul()
    {
        return this.leftNumber *this.rightNumber;
    }
}

3.4:除法类

class CalculationDi{
    leftNumber = 0;
    rightNumber = 0;
    getResul()
    {
        return this.leftNumber /this.rightNumber;
    }
}

3.5:工厂类

class factoryCalculation{
    static getCalculation(left,right,opetate){
        switch (opetate) {
            case "+":
                var add = new CalculationAdd();
                add.leftNumber = left;
                add.rightNumber = right;
                return add;
            case "-":
                var sub = new CalculationSub();
                sub.leftNumber = left;
                sub.rightNumber = right;
                return sub;
            case "*":
                var Mu = new CalculationMu();
                Mu.leftNumber = left;
                Mu.rightNumber = right;
                return Mu;
            case "/":
                var Di = new CalculationDi();
                Di.leftNumber = left;
                Di.rightNumber = right;
                return Di;
            default:
                return null;
        }
    }
}

3.6:测试结果

var add = factoryCalculation.getCalculation(1,2,"+");
console.log(add.getResul());
var sub = factoryCalculation.getCalculation(1,2,"-");
console.log(sub.getResul());
var Mu = factoryCalculation.getCalculation(1,2,"*");
console.log(Mu.getResul());
var di = factoryCalculation.getCalculation(1,2,"/");
console.log(di.getResul());

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值