JavaScript学习笔记javascriptWeb前端之路

javascript策略模式-年底绩效的计算

2016-12-12  本文已影响50人  smartphp

策略模式:定义一系列的算法,把他们一个个封装起来,并且可以相互替换
参见《javascript设计模式与开发实践》

解决问题:公司的绩效根据员工的工资和年度绩效来决定。每个人的工资和绩效是不同的,但是计算方法是相同的。

 js版的策略模式

//定义三个不同绩效的策略,每个绩效的策略实际的计算结果还有传入的参数来计算
var strategies = {
        "S": function( salary ){  //s是绩效,salary是传入的工资参数,下同
            return salary * 4;
        },
        "A": function( salary ){
            return salary * 3;
        },
        "B": function( salary ){
            return salary * 2;

        }
    };
        //使用策略的计算函数,传入绩效和工资参数
    var calculateBonus = function( level, salary ){
        return strategies[ level ]( salary );  //根据参数选用不同的策略
    };
       //使用时传入绩效等级和工资额
    console.log( calculateBonus( 'S', 20000 ) ); // 输出:80000
    console.log( calculateBonus( 'A', 10000 ) ); // 输出:30000```

通过策略模式,策略和实际的计算方法分工明确,关系解耦和,各自发生改变都不改变另一部分的代码结构和内容。在具体策略中也不会出现紧耦合的判读选择语句。
上一篇下一篇

猜你喜欢

热点阅读