一、策略模式的定义?
策略模式就是将一系列算法封装起来,并使它们之间相互替换。被封装起来的算法具有独立性外部不可改变其特性。
这里我们以洗衣机为例:洗衣机中存在很多的模式,这些模式都是相互独立的,也就是说单一的一个模式都可以完成洗衣的功能。
下面我们来看一个场景。
如果今天是双十一,商城有促销,促销方案如下。
1、满100减5
2、满200减15
3、满300减30
4、满400减50
此时如果正常代码为:
function full100(price) {
return price - 5;
}
function full200(price) {
return price - 15;
}
function full300(price) {
return price - 30;
}
function full400(price) {
return price - 50;
}
function calculate (type, price) {
if (type == 'full100') {
return full100(price)
}
if (type == 'full200') {
return full200(price)
}
if (type == 'full300') {
return full300(price)