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去选择不同的方法调用。

摄影爱好者,全栈工程师,游戏玩家,积木苦手,超穷手办收藏爱好者

发表评论