定义:定义一系列的算法,把它们一个个封装起来,并且使它们可以相互替换。
目的:就是将算法的使用和实现分离开来。除了封装算法,还可以封装业务规则
以下为js简单的实现:
// 选择不同交通方式去计算需要花费的总价
var Strategies = {
"ship": function(num) {
return 500 * num
},
"plane": function(num) {
return 1000 * num
},
"train": function(num) {
return 700 * num
}
}
var calculate = function(way, num) {
return Strategies[way](num)
}
console.log(calculate('ship', 2)) // 1000
console.log(calculate('plane', 2)) // 2000