Javascript设计模式与开发实践:读书笔记4 策略模式
策略模式的定义是:定义一系列的算法,把它们一个个封装起来,并且使它们可以相互替换。
基本
这是一个基本演示策略模式的Demo,中间没有太多复杂的细节,仅仅就展现了策略模式的运行流程。
首先定义一个策略管理器,然后为这个管理器指定定义的策略。
在执行时,执行指定的策略。
他们也可以相互之间替换。
var strategy = function(){
this._fn = ()=> {
throw '未配置策略'
}
}
strategy.prototype.set = function(_s) {
this._fn = _s;
}
strategy.prototype.call = function(value) {
return this._fn(value);
}
var _s = new strategy();
_s.set((v)=>{
console.log('输入了',v)
})
_s.call('策略1')
// 更换策略
_s.set((v)=>{
console.log('输入了',v,v)
})
_s.call('策略2')
JS下的策略
我们知道,策略模式,就是根据给予的条件判断,调用哪个方法。
var strategyList = {
'a': () => {console.log('策略1')},
'b': () => {console.log('策略2')},
}
var calc = function(name) {
return strategyList[name]
}
上面的代码,会根据name
去选择不同的方法调用。