js裝飾器模式

2022-07-14 13:18:31 字數 657 閱讀 1192

// 裝飾器模式 執行時動態新增附加功能到物件中

/*** 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...