策略模式(Strategy Pattern):
定义:定义了一族算法; 封装了每个算法; 这族的算法可互换代替。 目的:将算法的使用与算法的实现分离开来。 场景:可用来消除大量的条件分支语句。
例:JS代码实现
// 策略算法封装
let strategy = {
add (number1, number2) {
return number1 + number2
},
sub (number1, number2) {
return number1 - number2
},
mul (number1, number2) {
return number1 * number2
},
div (number1, number2) {
return number1 * number2
}
}
// 策略算法调用封装
function callStratery (strategyType, number1, number2) {
return strategy[strategyType](number1, number2)
}
// 策略算法调用
callStratery(add, 1, 2) // return 3