商場搞活動痹栖,周一到周五翻著花樣來。算法不同,目標一致(讓利促銷)。
function monday() {
// 買一送一
}
function tuesday() {
// 第二份半價
}
function wednesday() {
// 三人同行一人免單
}
function joinActivity(day) {
var map = {
monday: monday,
tuesday: tuesday,
wednesday: wednesday,
thursday: thursday,
friday: friday
};
return map[day]();
}
joinActivity('monday'); //買一送一
策略&觀察者
function Activity() {}
var activity = new Activity();
//模塊Day將一些列促銷算法注冊到activity上
activity.bind('周一', Day.monday);
activity.bind('周二', Day.tuesday);
activity.bind('周三', Day.wednesday);
//activity 只關(guān)注店鋪開張思犁,并觸發(fā)對應(yīng)的事件,其中的具體的操作則不關(guān)心进肯。
activity.openShop(function(day) {
activity.emit(day); // 觸發(fā)對應(yīng)的事件
});