策略模式的定义:定义一系列的算法,把它们一个个封装起来,并且使它们可以相互替换。(来自《JavaScript设计模式与开发实践》)
**案例一:**假设我们有18元钱,打算去买水果,水果店里有三种水果:苹果(单价1元)、雪梨(单价2元)、香蕉(单价6元),那么我们买不同种类的水果,买到的数量是不一样的,接下来我们用策略模式来模拟一下
let buyFruits = {
'apple': function( cash ) {
let num = cash / 1;
return `您花了${cash}元,买到${num}个苹果`;
},
'pear': function( cash ) {
let num = cash / 2;
return `您花了${cash}元,买到${num}个梨`;
},
'banana': function( cash ) {
let num = cash / 6;
return `您花了${cash}元,买到${num}个香蕉`;
}
}
buyFruits[ 'apple' ]( 18 ); // 您花了18元,买到18个苹果
buyFruits[ 'pear' ]( 18 ); // 您花了18元,买到9个梨
buyFruits[ 'banana' ]( 18 ); // 您花了18元,买到3个香蕉