/*
策略模式:
将定义的一组算法封装起来,使其相互之间可以替换。封装的算法具有一定独立性,不会随客户端变化而变化。
*/
// 电商中价格策略对象
var PriceStrategy = function () {
var strategy = {
return30: function (price) {
return +price + parseInt(price / 100) * 30;
},
return50: function (price) {
return +price + parseInt(price / 100) * 50;
},
percent90: function (price) {
return price * 100 * 90 / 10000;
},
percent50: function (price) {
return price * 100 * 50 / 10000;
}
};
return function (algorithm, price) {
return strategy[algorithm] && strategy[algorithm](price);
}
};