5-策略模式

策略模式的定义是:定义一系列的算法,把它们一个个封装起来,并且使它们可以相互替换。

var calculateBonus = function( performanceLevel, salary ){

if ( performanceLevel === 'S' ){

  return salary * 4;

}

if ( performanceLevel === 'A' ){

  return salary * 3;

}

if ( performanceLevel === 'B' ){

  return salary * 2;

} };

calculateBonus( 'B', 20000 ); // 输出:40000

calculateBonus( 'S', 6000 ); // 输出:24000

// js实现

var strategies = {
  "S": function( 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

猜你喜欢

转载自www.cnblogs.com/zandy/p/10006720.html