策略模式(Strategy Pattern):
1 2 3 |
定义:定义了一族算法; 封装了每个算法; 这族的算法可互换代替。 目的:将算法的使用与算法的实现分离开来。 场景:可用来消除大量的条件分支语句。 |
例:JS代码实现
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
// 策略算法封装 let strategy = { add (number1, number2) { return number1 + number2 }, sub (number1, number2) { return number1 - number2 }, mul (number1, number2) { return number1 * number2 }, div (number1, number2) { return number1 * number2 } } // 策略算法调用封装 function callStratery (strategyType, number1, number2) { return strategy[strategyType](number1, number2) } // 策略算法调用 callStratery(add, 1, 2) // return 3 |