// 裝飾器模式 執行時動態新增附加功能到物件中
/*** 1 當我們有這樣乙個場景:乙個筆 造價是一元錢
* 如果跨省買這只筆增加一元錢運費
* 如果零售增值2元
* 如果打八折
*///es6實現
class pen
},lingshou:
},dazhe: }}
}constructor(price)
decorate(decorate)
getprice() )
return price;}}
let pen = new pen(1);// 出廠價是一元錢 這裡可以自定義
pen.decorate('lingshou');// 讓它零售
pen.decorate('kuasheng');// 讓它跨省
console.log(pen.getprice());// 4
let pen2 = new pen(1);
pen2.decorate('lingshou');// 讓它零售
pen2.decorate('kuasheng');// 讓它跨省
pen2.decorate('dazhe');// 讓它打折
console.log(pen2.getprice());// 3.2
JS設計模式 裝飾器模式
裝飾器模式 decorator pattern 允許向乙個現有的物件新增新的功能,同時又不改變其結構。這種型別的設計模式屬於結構型模式,它是作為現有的類的乙個包裝。拿最近比較火的吃雞遊戲 絕地求生 大逃殺pubg 來說,遊戲中每個玩家降落到島上,剛開始是一無所有的,需要通過撿拾或掠奪裝備來武裝自己,...
裝飾器模式
大話設計模式 裝飾器模式 為已有功能動態地新增更多功能,當系統需要新功能,向舊的類中新增新功能,裝飾了原有類的核心職責和行為,而不改變它們 就像包裝袋一樣,有 的包裝袋包裝之前裝好東西的包裝袋 ifndef clothes h define clothes h include using names...
裝飾器模式
裝飾器設計模式 對真實物件動態的新增功能 抽象元件 author zhangjianbin public inte ce icar 俱體構件物件 真實的物件 author zhangjianbin class car implements icar 裝飾器物件 author zhangjianbin...