宣告:本博文篇幅短,適合review。
一、概念
裝飾模式是在不必改變原類檔案和使用繼承的情況下,動態地擴充套件乙個物件的功能。它是通過建立乙個包裝物件,也就是裝飾來包裹真實的物件。
二、結構模式圖
三、例子
四、優缺點
1、優點
a、decorator模式與繼承關係的目的都是要擴充套件物件的功能,但是decorator可以提供比繼承更多的靈活性。
b、通過使用不同的具體裝飾類以及這些裝飾類的排列組合,可以創造出很多不同行為的組合。
c、遵守大部分grasp原則和常用設計原則,高內聚、低偶合。
2、缺點
a、這種比繼承更加靈活機動的特性,也同時意味著更加多的複雜性。
b、裝飾鏈不能過長,否則會影響效率。
c、因為所有物件都是繼承於component,所以如果component內部結構發生改變,則不可避免地影響所有子類(裝飾者和被裝飾者)。
設計模式 Decorator裝飾模式
decorator裝飾模式是一種結構型模式,它主要是解決 過度地使用了繼承來擴充套件物件的功能 由於繼承為型別引入的靜態特質,使得這種擴充套件方式缺乏靈活性 並且隨著子類的增多 擴充套件功能的增多 各種子類的組合 擴充套件功能的組合 會導致更多子類的膨脹 多繼承 繼承為型別引入的靜態特質的意思是說以...
設計模式 裝飾模式(Decorator )
讓我們來理解一下這句話。我們來設計 門 這個類。假設你根據需求為 門 類作了如下 定義 現在,在系統的乙個地方需要乙個能夠報警的door,你來怎麼做呢?你或許寫乙個door的子類alarmdoor,在裡面新增乙個子類獨有的方法alarm 嗯,那在使用警報門的地方你必須讓客戶知道使用的是警報門,不然無...
設計模式 裝飾模式(Decorator)
裝飾模式,從裝飾兩個字可以聯想到我們身上的首飾啊衣服什麼的。因此本文就以穿衣服為例子說說裝飾模式。該例子的難點是用程式把所需要的衣服按照正確的順序串聯起來控制。先簡單說說裝飾模式 裝飾模式,動態地給乙個物件新增一些額外的職責,就增加功能來說,裝飾模式比生成子類更為靈活。按照筆者的理解,裝飾模式就是將...