大話設計模式閱讀筆記 裝飾模式

2021-08-01 23:49:12 字數 842 閱讀 7503

1.裝飾模式(decorator):動態地給乙個物件新增一些額外的職責,就增加功能來說,裝飾模式比生成子類更為靈活。

component 是定義乙個物件介面,可以給這些物件動態的新增職責,concretecomponent是定義了乙個具體的物件,也可以給這個物件新增一些職責。decorator,裝飾抽象類,繼承了component,從外類來擴充套件component類的功能,單對於component來說,是無需知道decorator的存在的,至於concretedecorator就是具體的裝飾物件,起到給component新增職責的功能。裝飾模式是利用setcomponent來對物件進行包裝,這樣每個裝飾物件的實現就和如何使用這個物件分離開了,每個裝飾物件只關心自己的功能,不需要關心如何被新增到物件鏈當中。

2.裝飾變種:如果只有乙個concretecomponent物件需要被裝飾,就可以不要component類,decorator類可以是concretecomponent的子類,同樣的道理,如果只需要乙個裝飾類,那就沒必要建立單獨的decorator抽象類了,直接concretedecorator類繼承concretecomponent類就可以了。增加component和decorator兩個基類,是為了擴充套件,以後需要多個,針對介面程式設計,而不是針對實現程式設計。

3.裝飾模式的總結:

《大話設計模式》閱讀筆記

這一章用編寫乙個計算器作為例子。講述了物件導向的三個最重要的方面,即封裝 繼承和多型。我們寫程式不僅僅只是得到乙個正確答案,這是遠遠不夠的,還需要考慮其復用性 可擴充套件性 易維護性,從而達到程式設計的藝術。之前做的離心管的專案,把所有東西都放在乙個標頭檔案加原始檔裡頭了,這樣非常不好找,另外就是當...

大話設計模式 裝飾模式

動態地給乙個物件新增一些額外的職責。優點 把類中的裝飾功能從類中搬移出去,這樣可以簡化原有的類。有效地把類的核心功能和裝飾功能區分開了。解決的問題 已經開發完畢的物件,後期由於業務需要,對舊的物件需要擴充套件特別多的功能,這時候使用給物件動態地新增新的狀態或者行為 即裝飾模式 方法,而不是使用子類靜...

大話設計模式 裝飾模式

前言穿衣打扮是現在的時尚潮流,我們時常刷 來不斷滿足自己的打扮需求,買個帽子 換條褲子 整雙時尚鞋。需求是沒有極限的,無止境的購物,只要存在這個平台那麼這些裝飾性的購物是不可避免的。這在我們軟體開發中可以看做是為我們例項化的物件新增一些額外的功能,要是我們對於每個都定義個子類來繼承的話,那就是指數增...