JavaScript設計模式-- 裝飾者(Decorator)模式

定義: 有一個目標性的去強化某個功能或東西。原有的方法名稱不變, 是透過覆寫(override)方法強化功能,因而被稱為"裝飾"。

e.g.

function Computer() {

this.cost = function() {
return 41900;
};
this.screenSize = function() {
return 12;
};

}

function addMemory(pc) {

var v = pc.cost();                                
pc.cost = function() {                           // 透過覆寫cost(), 以強化原有電腦功能
return v + 10000;        
};

}

function addEngraving(pc) {

var v = pc.cost();                                
pc.cost = function() {                           // 透過覆寫cost(), 以強化原有電腦功能
return v + 1000;
};
}

function addInsurance(pc) {

var v = pc.cost();
pc.cost = function() {                          // 透過覆寫cost(), 以強化原有電腦功能
return v + 8590;
};

}

var nb = new Computer();

//增加記憶體、刻字、保固

addMemory(nb);
addEngraving(nb);
addInsurance(nb);

console.log(nb.cost());                               // 61490




留言

熱門文章