javaScript设计模式:策略模式

策略模式的思想是在程序运行时选择算法,这种情况非常普遍,在程序运行环境的不同程序需要选择不同的算法、在业务需求不同时需要选择不同的算法等。

例如在表单验证时,需要做非空检查、字符检查等情况,这些不同的验证结果就需要不同的算法实现相应的功能;

还有工资计算时也会使用策略模式,比如针对不同的员工按照不同不工资计算方式。

模拟策略模式:

//算法集合
let algorithm = {
    a:function(){},
    b:function(){},
    c:function(){}
}
//任务
let assignment = function(data){
    function strategy(data){
        //执行策略程序决定采用哪种算法a、b、c
        return ...
    }
    algorithm[strategy(data)](); //根据策略程序决定使用不同的算法执行计算
}

当然这是非常简单的策略模式模板,在实际应用中实现会复杂的很多,但基本设计思想就是将所有算法放到一个集合中,然后在具体任务中通过一系列策略逻辑选择一个相应的算法执行计算任务。