定义
策略模式的定义: 定义一系列的算法,把它们一个个封装起来,并且使它们可以相互替换。
目的
将算法的使用与算法的实现分离开来。
使用
针对不同类型的数据转化,利用JavaScript本有的多态就可以简洁实现,例如使用对象包含从S-C的年终绩效计算函数,当触发薪水计算时根据传入的不同绩效水平取出函数并输入薪水进行计算年终奖。不同人触发的函数不一定一致,但其使用的功能统一,达到了相互替换的效果。
其次书中还介绍了动画与表单校验的例子,其中表单校验对于不同校验规则进行整理成校验函数属性封装进对象中,再对传入的rules规则进行遍及对规则进行字符串解析获取对应函数名与参数。当errormsg存在时,校验失败。
总结
策略模式对可替换功能进行对象封装(用函数进行替换),在取值时利用多态进行外部无感的调用与匹配。