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

  • 定義

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

  • 個人理解

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

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

  • 示例介紹

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

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

網(wǎng)友評論