做国外订单用哪个网站,登錄wordpress界面,软件开发培训通知,大学生创新创业大赛英文什么是策略模式#xff1f;
定义#xff1a;根据不同参数可以命中不同的策略
主要解决#xff1a;在有多种算法相似的情况下#xff0c;使用 if...else 所带来的复杂和难以维护。
何时使用#xff1a;有许多种情况#xff0c;而区分它们的只是他们直接的行为。
如何解…什么是策略模式
定义根据不同参数可以命中不同的策略
主要解决在有多种算法相似的情况下使用 if...else 所带来的复杂和难以维护。
何时使用有许多种情况而区分它们的只是他们直接的行为。
如何解决通过一个hash对象来映射不同的策略。
优点 1、算法可以自由切换。 2、避免使用多重条件判断。 3、扩展性、复用性良好。
缺点 1、策略类会增多。 2、所有策略类都需要对外暴露。
使用场景 1.需要动态地根据行为改变运行方法。2.为了减少代码同时为了让代码具有更好的可读性。3.需要对策略进行统一管理。 JavaScript中的策略模式
观察如下获取年终奖的 demo根据不同的参数level获得不同策略方法(规则)这是策略模式在 JS 比较经典的运用之一。 const strategy {S: function(salary) {return salary * 4},A: function(salary) {return salary * 3},B: function(salary) {return salary * 2}
}const calculateBonus function(level, salary) {return strategy[level](salary)
}calculateBonus(A, 10000) // 30000 在函数是一等公民的 JS 中策略模式的使用常常隐藏在高阶函数中稍微变换下上述 demo 的形式如下可以发现我们平时已经在使用它了恭喜我们又掌握了一种设计模式。 const S function(salary) {return salary * 4
}const A function(salary) {return salary * 3
}const B function(salary) {return salary * 2
}const calculateBonus function(func, salary) {return func(salary)
}calculateBonus(A, 10000) // 30000 更多专业前端知识请上
【猿2048】www.mk2048.com