概念
解决一个问题时,定义不同的方法,将每个方法封装起来,并使它们可以互相替换
示例
同常,我们会遇到这种情况,需要根据不同的要求走不同的分支,此时会发现一堆 if else,且后期很难维护,这时策略模式就时很好的解决方式,废话不BB,上代码
var funList = {
fun1: function(val){
return val + 1
},
fun2: function(val){
return val + 2
},
fun3: function(val){
return val + 3
}
}
let fun = function(eve, val){
return funList[eve](val)
}
fun('fun1',2) // 3
fun('fun2',2) // 4
fun('fun3',2) // 5
把策略都写在了 funList 集合中,可以有效避免多重的 if else,但同时也会扩大 funList 集合