https://www.cnblogs.com/zooboo/p/9556212.html
1、参考例子:
var obj = { "A": function(salary) { return salary * 4; }, "B" : function(salary) { return salary * 3; }, "C" : function(salary) { return salary * 2; } }; var calculateBouns =function(level,salary) { return obj[level](salary); }; console.log(calculateBouns('A',10000)); // 40000
【以上面例子说明】策略模式的目的就是将 算法的使用 与 算法的实现 分离开来。体现在代码中,就是用一个单独的对象,封装所有的 算法实现。
因为,算法最后都会返回一个值,所以使用结果是一样的,这样 封装 一个 调度 算法的函数【根据参数,自动使用相应的算法】。
个人理解:策略模式,就是 将多种执行任务 写在一个对象下,由一个 函数 统一调度这些任务。调度方法,一次只能调度一个任务;如果要调度多个方法,应该生成一个新的任务。
在任务里面 可以组合多个任务。
2、策略模式实际使用场景:
a、表单验证中的使用。 【参考 实际模式的书籍】
3、使用策略模式的优点如下:
优点:1. 策略模式利用组合,委托等技术和思想,有效的避免很多if条件语句。
2. 策略模式提供了开放-封闭原则,使代码更容易理解和扩展。
3. 策略模式中的代码可以复用。