策略模式的JS实现

    var S = function (salary) {
        return salary * 4;
    };
    var A = function (salary) {
        return salary * 3;
    };
    var B = function (salary) {
        return salary * 2;
    };
    var calculateBonus = function (func, salary) {
        return func(salary);
    };

    calculateBonus(S, 10000);

  能看出上面是一个策略模式的实现么?一个基于策略模式的程序至少由两部分组成。第一个部分是一组策略类,策略类封装了具体的算法,并负责具体的计算过程。第二个部分是环境类,环境类接受客户的请求,随后把请求委托给某一个策略类。要做到这点,说明环境类要维持对某个策略对象的引用。    

     仍学习自《JavaScript设计模式与开发实践》一书

 

                           

posted @ 2017-03-08 15:24  姜瑞涛  阅读(477)  评论(0编辑  收藏  举报