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

文章目录

  • JS中的简单工厂模式
    • 一: 简单工厂模式图解
    • 二:什么是工厂模式
    • 三:代码实现
      • 3.1:加法类
      • 3.2:减法类
      • 3.3:乘法类
      • 3.4:除法类
      • 3.5:工厂类
      • 3.6:测试结果

JS中的简单工厂模式

一: 简单工厂模式图解

JS中使用简单工厂模式实现简单计算器_第1张图片

二:什么是工厂模式

  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());

JS中使用简单工厂模式实现简单计算器_第2张图片

你可能感兴趣的:(javascript,简单工厂模式,设计模式,前端)