一、策略模式的概念
封装了一个充满各种算法的对象,这些算法可以供各种对象使用,可以供给给任何条件判断。
二、策略模式的组成
策略模式的程序至少由两部分组成。第一部分是一组 策略类,第二个部分是 环境类。
策略类封装了具体的算法,并负责具体的计算过程。
环境类接受客户的请求,随后把请求委托给某一个策略类。要做到这点,说明环境类中要维持对某个策略对象的引用。
三、示例
下面是一个运用策略模式的例子
超市搞促销活动,有的商品9折,有的8折,有的7折
//策略类
var nine = function (price) {
return price* 0.9; //九折
};
var eight = function (price) {
return price* 0.8; //八折
};
var seven = function (price) {
return price* 0.7; //七折
};
//环境类
var resultPrice = function (func, price) {
return func(price);
};
//调用策略的方法
resultPrice(nine, 100);
四、总结
当一个项目需要大量算法,大量匹配模式的时候,只要将策略名称和所需参数传入策略模式,就可以根据策略模式中封装的算法得出答案,代码中复用性很高~