在日常開(kāi)發(fā)工作中,適當(dāng)?shù)氖褂靡恍┰O(shè)計(jì)模式,可以讓代碼擴(kuò)展性更強(qiáng),能更好地?fù)肀ё兓尨a更加優(yōu)雅。本文主要介紹設(shè)計(jì)模式中的裝飾模式,并附上測(cè)試示例 Demo 供大家參考。

  • 定義

  裝飾模式(Decorator Pattern)允許向一個(gè)現(xiàn)有的對(duì)象添加新的功能,同時(shí)又不改變其結(jié)構(gòu)。這種類型的設(shè)計(jì)模式屬于結(jié)構(gòu)型模式,它是作為現(xiàn)有的類的一個(gè)包裝。

  • 個(gè)人理解

  裝飾模式可以在運(yùn)行時(shí),在不修改原有代碼的前提下,動(dòng)態(tài)地為對(duì)象添加或移除指定的業(yè)務(wù)邏輯,比起繼承,采用裝飾模式讓代碼更據(jù)擴(kuò)展性,更為靈活,避免了繼承導(dǎo)致的代碼耦合。

  裝飾模式的設(shè)計(jì)理念是:對(duì)修改關(guān)閉,對(duì)擴(kuò)展開(kāi)放;面對(duì)接口編程。

  • 示例介紹

  個(gè)人有時(shí)間會(huì)自己煮湯(這不是重點(diǎn)哈,只是剛好有這么一個(gè)場(chǎng)景適合采用裝飾模式,因此也就拿來(lái)做例子了),在煮湯的過(guò)程中,我們需要添加不同的食材,就拿涼瓜排骨湯來(lái)說(shuō)吧,需要的食材有排骨、涼瓜、大豆、食用鹽、水等,當(dāng)然根據(jù)不同人的不同喜好,可以添加其他的食材。以上說(shuō)到的這些食材都是制作“涼瓜排骨湯”所必須的,沒(méi)有它們的點(diǎn)綴,湯喝起來(lái)也就不是那個(gè)味道了,這里的點(diǎn)綴我們可以理解為裝飾,是食材裝飾了“涼瓜排骨湯”,也就是說(shuō)食材是裝飾者,而“涼瓜排骨湯”是被裝飾的對(duì)象。UML 圖如下:

電腦培訓(xùn),計(jì)算機(jī)培訓(xùn),平面設(shè)計(jì)培訓(xùn),網(wǎng)頁(yè)設(shè)計(jì)培訓(xùn),美工培訓(xùn),Web培訓(xùn),Web前端開(kāi)發(fā)培訓(xùn)

延伸閱讀

學(xué)習(xí)是年輕人改變自己的最好方式-Java培訓(xùn),做最負(fù)責(zé)任的教育,學(xué)習(xí)改變命運(yùn),軟件學(xué)習(xí),再就業(yè),大學(xué)生如何就業(yè),幫大學(xué)生找到好工作,lphotoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動(dòng)軟件開(kāi)發(fā)培訓(xùn),網(wǎng)站設(shè)計(jì)培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)學(xué)習(xí)是年輕人改變自己的最好方式