1.策略模式的定义:
定义一系列的算法,将他们一个个封装起来,并且使他们可以互相替换,他的目的是将算法的使用和算法的实现分离开,通俗的讲就是:定义一系列算法,将他们各自封装成策略类,算法被封装在策略内部的方法里,在客户对context发起请求时,context总是把请求委托给这些策略对象中间的某一个进行计算
2.JavaScript版的策略模式
我们可以用一个名为calculate的函数来计算每个人的奖金数额:
最初的代码实现:
这样写函数缺乏弹性,复用性差
策略模式实现:
3.策略模式的优缺点:
优点:
1.可以有效避免多重条件选择语句
2.提供了开放-封闭的完美支持。将算法封装在独立的策略类里面,使他们易于切换,易于扩展
缺点:
1.会在程序里增加许多策略类
2.要使用策略模式,必须了解所有的策略类,了解各个策略方法之间的不同点