裝飾器模式:
decorator pattern:就是動態地把職責附加到已有物件上去,實現功能擴充套件。這種特性,使得裝飾者模式提供了比繼承更具有彈性的解決方案。
例子:美國女孩
輸出:// 抽象類 girl
abstract
class
girl
}// 美國女孩
class
americangirl
extends
girl
}// 國產妹子
class
chinesegirl
extends
girl
}// 裝飾者
abstract
class
girldecorator
extends
girl
// 下面以美國女孩示例
// 給美國女孩加上金髮
class
goldenhair
extends
girldecorator
@override
public string getdescription()
}// 加上身材高大的特性
class
tall
extends
girldecorator
@override
public string getdescription()
}// 檢驗一下
public
class
test
}
**總結:**當需要動態地給乙個物件新增功能,實現功能擴充套件的時候,就可以使用裝飾者模式。+americangirl
+americangirl+with golden hair
+americangirl+with golden hair+is very tall
裝飾器模式和介面卡模式區別:
1.關於新職責:介面卡也可以在轉換時增加新的職責,但其主要目的並不在此,而裝飾器模式的主要目的,就是給被裝飾者增加新職責用的。
2.關於原介面:介面卡模式是用新介面來呼叫原介面,原介面對新系統來說是不可見或不可用的;而裝飾者模式原封不動的使用原介面,系統對裝飾的物件也通過原介面來完成使用。
3.關於其包裹的物件:介面卡是知道被適配者的詳細情況的(就是哪個類或哪個介面);而裝飾者只知道其介面是什麼,至於其具體型別(是基類還是其他派生類)只有在執行期間才知道。
裝飾器模式
大話設計模式 裝飾器模式 為已有功能動態地新增更多功能,當系統需要新功能,向舊的類中新增新功能,裝飾了原有類的核心職責和行為,而不改變它們 就像包裝袋一樣,有 的包裝袋包裝之前裝好東西的包裝袋 ifndef clothes h define clothes h include using names...
裝飾器模式
裝飾器設計模式 對真實物件動態的新增功能 抽象元件 author zhangjianbin public inte ce icar 俱體構件物件 真實的物件 author zhangjianbin class car implements icar 裝飾器物件 author zhangjianbin...
裝飾器模式
一 概念 裝飾模式能夠實現動態的為物件新增功能,是從乙個物件外部來給物件新增功能。通常給物件新增功能,要麼直接修改物件新增相應的功能,要麼派生對應的子類來擴充套件,抑或是使用物件組合的方式。顯然,直接修改對應的類這種方式並不可取。在物件導向的設計中,而我們也應該 盡量使用物件組合,而不是物件繼承來擴...