JS中的简单工厂模式
一: 简单工厂模式图解
二:什么是工厂模式
-
工厂模式属于创建型设计模式,目的就是不会对上端展示创建对象的细节,通过一个共同的通道来指向新创建的对象
-
使用场景: 再不同条件下创建不同的实例进行使用
-
解决思路: 子类实现工厂的接口,返回的也是一个抽象的产品
三:代码实现
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());